12/31/2010

2010 年の集計結果

去年もやった ので、今年もしてみます。

◆◆Google Analytics による集計(2010/01/01〜2010/12/30)
◆タイトル別のコンテンツ

こんな感じでした。なにかお役に立ったエントリーはありましたでしょうか?


◆キーワード

なんと 1 位の「php4 xml 読み込み」は、去年もキーワードで 1 位でした。


◆ブラウザと OS
  1. (24.84%) Firefox / Windows
  2. (23.73%) Internet Explorer / Windows
  3. (16.57%) Chrome / Windows
  4. (13.28%) Safari / Macintosh
  5. (6.31%) Firefox / Macintosh
  6. (5.46%) Chrome / Macintosh
  7. (3.45%) Opera / Windows
  8. (1.43%) Safari / Windows
  9. (0.95%) Safari / iPhone
  10. (0.82%) Firefox / Linux

去年は IE が 1 位でしたが、今年は Firefox が 1 位でした。9 位に iPhone からのアクセスが入っているのが興味深いですね。


◆全ての参照先
  1. (82.99%) google / organic
  2. (10.19%) (direct) / (none)
  3. (2.31%) yahoo / organic
  4. (1.61%) blogger.com / referral
  5. (0.32%) search / organic
  6. (0.25%) d.hatena.ne.jp / referral
  7. (0.25%) s.luna.tv / referral
  8. (0.22%) d.aoikujira.com / referral
  9. (0.18%) search.goo.ne.jp / referral
  10. (0.15%) twitter.com / referral

今年も Google が圧倒的ですね。そしてなんだか Yahoo! が票を伸ばし、twitter が 10 位に入ってます。


◆画面の解像度
  1. (21.94%) 1280 x 1024
  2. (16.57%) 1280 x 800
  3. (10.22%) 1920 x 1200
  4. (9.63%) 1680 x 1050
  5. (9.56%) 1024 x 768
  6. (8.52%) 1920 x 1080
  7. (6.17%) 1440 x 900
  8. (3.26%) 1366 x 768
  9. (3.18%) 1600 x 1200
  10. (1.09%) 1400 x 1050

去年よりも大画面化が確実に進んでいますね。しかし横が 1366px とか縦が 1050px とか見たことないです。

今年もこうやって、無事一年を振り返ることができました。みなさんありがとうございます。
来年もどうぞ宜しくお願い申し上げます。

12/29/2010

goSearchForYou に自分で検索エンジンを追加できるようにしてみた

先日、リニューアルした goSearchForYou(Safari / Chrome 拡張)を 2.1.0.0 にアップデートしてみました。

主な変更点は次の通りです。
  • ウェブサービスを追加できるように変更
  • ウェブサービスの並び替えや削除をできるように変更
  • ウェブサービスの名称変更をできるように変更

ウェブサービスの追加は、対象とする検索フォームのテキストボックスをクリックした上で(情報を取得するため、クリックの必要があります)、F9 キー(OPTION 画面で変更可)を押すと、追加画面が出てくるので、名前を入力し(最大全角 12 文字)、挿入箇所を指定して、「追加」ボタンを押します。
ウェブサービスの追加画面

一度追加したサービスの場合は、上記の操作で名称変更をすることができます。
ウェブサービスの追加画面での名称変更

追加できるウェブサービスは、以下の通りです。
  • クリックしたテキストボックスが <form> 要素内に含まれている
  • <form> の実行先が Javascript ではない
  • 実行先のソースから文字コードを取得でき、かつUTF-8・EUC-JP・Shift_JIS である
もし 2 回、追加画面を表示させる操作を行っても追加できない場合、上記のいずれかに該当していると思われます。

ウェブサービスの並び替えは、ドラッグ & ドロップの操作でできます。
ウェブサービスの追加画面での名称変更

ウェブサービスの削除は、「ゴミ箱」エリアへドロップします。ゴミ箱から出したいときは、「ゴミ箱から出す」ボタンを押してください。
ウェブサービスの追加画面での名称変更

ウェブサービスの名称変更は、最大全角 12 文字で名前を付けることができます。
ウェブサービスの追加画面での名称変更

良かったら、下記からどうぞ。

Chrome Extensions:
goSearchForYou - Google Chrome 拡張機能ギャラリー

Safari Extensions:
goSearchForYou | Prime Design Works | Webサイト制作・開発 | 京都市内・京都府

連想配列の、あるキーごと消したい時は delete

連想配列で、キーごと消したい場合は delete を使うだけでいいって、とても簡単。

var test = {browser: "safari", version: "5.0.3"};
// 上記の version を消したいとする
delete test.version;

フォームの部品を取得する時は、elements と options

フォームの部品を洗いざらい取得したい場合には、elements と options を使えば簡単に取得できる。

例えば、「id=test」を持つ form 要素があったとして、部品の name と value を取得したい、ついでに、セレクトボックスの option 要素に定義している textContent も取得したいとすると、こんな感じになる。

// 変数 thisForm に form 要素を定義
var thisForm = document.getElementById("test");
// 格納庫として変数 formElms を定義
var formElms = {names: new Array(), values: new Array(), texts: new Array()};
// form 要素内の部品を順に取得
for (var x = 0; x < thisForm.elements.length; x++) {
// それぞれを格納
  formElms.names.push(thisForm.elements[x].name);
  formElms.values.push(thisForm.elements[x].value);
// 部品のタグ名が select だった場合
  if (thisForm.elements[x].tagName == "SELECT") {
// select 要素内の option 要素を順に取得
    for (var y = 0; y < thisForm.elements[x].options.length; y++) {
      formElms.texts.push(thisForm.elements[x].options[y].textContent);
    }
  }
}

クリックした要素を取得する時には srcElement

クリックした要素のタグ名やら id やらを取得したいとき、srcElement が活躍してくれる。

document.onclick = function(evt) {
var thisTag = evt.srcElement.tagName;
};

クリックした event から srcElement で要素を取得し、tagName でタグ名を取得している。ただ、この時 tagName で取得できる文字列は大文字なので、好みにより「evt.srcElement.tagName.toLowerCase()」で小文字にしてもいい。

ちなみにクリックした要素の「階層上」上の要素を取得したい場合は、「evt.srcElement.parentElement.tagName」にすれば良い。

Safari/Chrome Extension でデータを渡す際は new Object() で

Safari/Chrome 機能拡張で、ウェブページ側で読み込んでいる Javascript とバックグラウンドで働く Javascript 間でデータを受け渡しすることがあると思うけど、それに連想配列のような複数データを持たせるときは、new Object() で定義したものでないと読み込めない。

例えば連想配列として、 var keys = []; で定義したものに色々値を設定して渡しても、undefined となってしまう。そこで、var keys = new Object(); と定義し、同じように設定すれば、キチンとデータを渡してくれる。

私はクセで前述のようにしてしまうので、結構難儀した。

Safari/Chrome Extension を作るときは location.href でなく document.URL

Safari/Chrome 拡張を開発する際、表示しているウェブページの URL を取得する場面があるかもしれないけど、この時は location.href ではなく document.URL で取得した方がよいと思う。

例えば 2 バイト文字が入っている場合、location.href では Safari と Chrome では異なる結果を返してしまう。Safari ではロケーションバーそのままの値で、Chrome ではそれがエンコードされた値で返ってくる。document.URL であれば双方ともエンコードされた値となるので、Safari/Chrome 共に同じソースでいける。