mathruねっと

mathru(まさる)の自作の音楽やレビュー,日常についての駄文など..

トップページ > Computer

Javascriptを使ったLivedoorブログの改造 4

Date :
2008年10月31日
Category :
Computer
なんかこのブログの細かいところがちょっと変わったなって思う方いません?

リンクを踏んだら同じページに飛んで
そこからリンク先に飛ぶだとか,動画の表示とか..

実はこれらはJavascriptを使ってやってます.

変更したところは以下の点です.
1.ブログ記事のリンクをすべてスクリプトで置換
2.ブログ外部へのリンクは一旦リダイレクトページに飛ばしてから外部ページにジャンプ
3.画像の表示をテンプレ化
4.ニコニコ動画の表示もIframeタグは使わずテンプレ化
5.ボカロの発売されてるCDをランダムに表示するボックスを追加

まず1なんですけど
ブログの記事に<span id="置換ID">a href="URL"<リンク名></a> </span>で書き込んでおくと
リンク名
URL
に置換されます.

また,着うたページへのリンクは
携帯電話向けのリンクを貼っておくと指定されたIDを元にPC向けのニコニコ市場へのリンクを作成して置換してくれます.

なんでこういうことするのかというと以下の理由があります.
A.タイトルの下にリンクURLが書かれるといったリンクのテンプレが作れる.
B.モバイルとPCのページの区別が可能になる.

livedoorブログにはモバイルとPC向けに同じ内容の記事を載せてしまうという欠点があります.
明らかにPC向けのリンクなのにモバイルでもそのリンクを表示してしまうと意味がありません.逆もしかりです.

モバイルだと確実にスクリプトが実行されませんから,記事の内容が置換されず元のリンクが表示されます.
最初にモバイル向けのリンクを貼っておきスクリプトでPC向けのリンクに置換させるようにするとモバイルにはモバイル向けリンク,PCにはPC向けリンクを表示されるようになり,この問題が解決できるというわけです.

以下のスクリプトを書いておくとページ読み込み時に指定されたIDを持つspanタグで囲まれた部分を関数名で定義した形に置き換えてくれるようになります.
window.onload = function(){
var elements=document.getElementsByTagName("span");
for (var i=0; i if (elements[i].id == "ID") { elements[i].innerHTML = 関数名(elements[i]); }



}
}

そして各関数は以下のように読み込んだ要素の内容を判別し新しい内容に書き直して値を返していることがわかります.
function hogehoge(e) {
var uri = e.firstChild.getAttribute("href");
var title = e.firstChild.innerHTML;
var targettitle = title;
var targetlink = "http://mathru.net/redirect/?t="+encodeURL(title)+"&to="+encodeURL(uri);
return (targettitle+'<br /><a href="'+targetlink+'" target="_blank">'+uri+'</a>');
}

次に2についてですが
なぜ一旦リダイレクトページに飛ばす必要があるのかということです.
答えをまず言うとアクセス解析をするためです.

僕はアクセス解析プログラムとして以下のGoogle Analyticsを使っています.

Google Analytics

この解析プログラムの凄いところはリンク元のURLなどの外部からやってきたユーザのデータだけではなく
ユーザが内部でどのページを見てどのページで見るのをやめたかなんていうユーザの内部動向が事細かにわかります.

ですが,当然データ収集スクリプトを貼っているページでないとデータが収集されませんですので,内部でのユーザの動向はわかるのですが,どのリンクをクリックして外部ページに出て行ったのかということがわかりません.(恐らくこのユーザの内部動向は参照URLを元に解析されたものでしょうからスクリプトを設置していない外部サイトは当然集計の対象にならないのです)

そこでリダイレクトページの登場というわけです.
このリダイレクトページにデータ収集スクリプトを貼っておくことで,ユーザがどのリンクをクリックしてこのリダイレクトページに飛んできたのかがわかります.
そのため,ユーザが何処から来てそして何処へ行くのかという情報がすべてわかってしまうわけです.

そして解析したデータを元にユーザの需要に合ったサイトを作っていくというわけです.
とはいえ,このサイトに来てくれる方はほとんどノーリファラ(つまり外部のページからのリンクを辿ってきたわけじゃなく,お気に入りとかURLの直接入力とか)でしたからあまり意味はなかったんですが,,,

最後に345についてです
これもほとんど1で述べた理由と被ってしまいますが5のランダムにボカロCDを表示するってのはいろいろ発展性がありそうなネタですね.
基本Javascriptでなんでもできますから面白いネタがあったら随時更新していこうと思います.
この記事をクリップ!
Tag
livedoorブログ  javascript 

AutoHotKeyで変態キーバインド

Date :
2008年10月26日
Category :
Computer
今日はなにを思い立ったかPCのキーボードカスタマイズをしましたw

普段キーボードを使っているとEnterキーとかBackspaceキーとかIMEのオンオフキー(全角/半角キー)とかが非常に遠くて不便だったりします.
てなわけでそれらのキーを近くに持ってこようということでソフトウェアを使ってキーの配置を仮想的に変えてやろうということなのです.

今回使ったのはAutoHotKeyというソフトウェア(フリー)です.
日本語の解説ページはこちら

AutoHotkeyを流行らせるページ

このソフト,,
ホントになんでもできますw

キーボードでマウスカーソルを操るのはもちろん
GUIでコントローラなんてのも作れます

スクリプトを書く必要がありますが
興味ある人は是非一度お試しあれ


で,今回コイツを使っていったいどんなキーバインドを作ったのか順を追って説明していきます

まず,以下の指針でキーバインドを考えました.
1.英字キーボードでも日本語キーボードでも使える
2.左手右手を動かさずに届くキーのみ使う(A-Z, Spaceキー, Tabキー, CapsLock(左Ctrlに入れ替え済み), 左Shift, セミコロン, カンマ, ピリオド, スラッシュ,アットマーク(英字だと[)の計35キー)

まず日本語入力していく上で必須なキーをピックアップ
Enter BackSpace 矢印キー 半角/全角(IMEトグル)
↑多分こんだけあればメモ帳に文字入力ができるはず

でこれをバインドしていきます.
Enter BackSpaceは
キーを打つ感覚をある程度保ったままの配置だと以下のようになります.
Enter ⇒ ;
BackSpace ⇒ @

半角/全角(IMEトグル)は
Linuxとかで普通に使っているShift+Spaceを採用

で問題は矢印キーなのですが
キーボードの基本的な配置

 ↑
←↓→

こんなんを割り当てるのに一番いいのがなにかのボタンで押しっぱなしにしときながら
ijklの配置でカーソルを動かすのが一番簡単

てなわけでSpace+ijklで矢印キーをバインドしました.
もちろんSpaceを単独で押すことで普段のSpaceのキーを使えます

そのほか文字入力をする上で必要なものを周りに配置

Space + i : ↑
Space + j : ←
Space + k : ↓
Space + l : →
Space + u : Pageup
Space + o : Pagedown
Space + s : Home
Space + f : End

Space + n : Shift+Tab
Space + m : Tab

Space + d : Shift押しっぱなし(vimのビジュアル選択モードみたくなる)
Space + a : 全選択

Space + w : 変換範囲拡大(変換中のShift+→)
Space + r : 変換範囲縮小(変換中のShift+←)

Space + h : 切り取り(Ctrl+x)
Space + y : コピー(Ctrl+c)
Space + p : 貼り付け(Ctrl+v)
Space + , : 元に戻す(Ctrl+z)
Space + . : やり直し(Ctrl+y)


次に指を伸ばさないと届かない数字と記号
これはスラッシュ(/)キーを押しっぱなしにしながら
キーを押すことで入力可能にした.さしずめ右Shiftってところです.

それでも全部入りきれなかったので以下のようにしてみた
IMEオンの時 ⇒ 半角数字入力 & 全角でも使いそうな記号の入力(ーとか・とか〜とか)
IMEオフの時 ⇒ 半角記号入力

普段全角で数字とか記号入力することないので少々強引にバインド


最後にコントロールキーを使ったショートカット
普段使ってるアプリケーションなんかと関連付けつつ設定


使ってみたところ格段に使いやすくなったw
でも以下の問題が発生
1.スペースを連続で入力できない
2.変換をたまにミスる
↑スペースの入力がキーを離したときに行われるためだと思われる
※デフォだと押した瞬間

日本語キーボードだと無変換キーあたりを
バインドさせれば簡単だけど英語キーボードだと親指でスペースしか押せないですからね


一応今回のスクリプトをあげときます.
欲しい方はどうぞw

AutoHotKeyスクリプト

※AutoHotkeyを流行らせるページのアップローダの、029.zip に同梱されている IME_Func.ahk が必要です.
この記事をクリップ!
Tag
AutoHotKey  キーカスタマイズ 

クロノトリガーDS 4

Date :
2008年07月05日
Category :
Computer
クロノ・トリガー

ヤバイヤバイ超ヤバイ!!
あの名作ゲームクロノトリガーがDSでリメイクされるようだ.

ストーリー良し,ゲーム性良し,そしてなんといってもゲームを飾るあの名曲たち..

そのゲームが帰ってくる!!

もう
公式サイト
があるようでタイトルは伏せられてるがどうみてもクロノトリガー.
いろんなブログでも言われているようだ.

発売は今年冬だそうで..いまから楽しみ(´∀`*)

X斬り!!
とかやりたいね
この記事をクリップ!
Tag
NintendoDS  携帯ゲーム機  RPG  クロノトリガー 

PageTop