最近の記事

最近のトラックバック

スポンサード リンク

Powered by Blogzine[ブログ人]

« 2004年11月 | メイン | 2005年1月 »

2004.12.25

ブックマークレット

ブックマークレットは、とっても便利。

ブックマークレットを使うと、新しい記事の作成やアフィリエイト用のリンク作成が簡単になるというのを良く見かけました。でも、「インストールする」とか「お気に入りに登録」とか書かれていたので、ちょっと怖くて尻込みをしていた。

調べてみたらなるほど。ブックマークレットとは、JavaScriptのワンライナー・スクリプトのことでした。ブラウザのお気に入りには、ページのアドレスだけでなくJavaScriptのワンライナー・スクリプトも登録でき、お気に入りからそのスクリプトを選択することで実行させることができます。

ワンライナーになっているのでスクリプトが読みにくいですが、どんなことをするスクリプトか分かり安心してお気に入りに登録できます。

JavaScript::Bookmarkletにいろいろな種類のブックマークレットが紹介されていますが、いろいろな事ができるのですね。

使ってみた後は、やっぱり自分でも作ってみたくなります。

お気に入りに登録するためには、JavaScriptをワンライナーにして、JavaScriptであることを示すjavascript:を頭に付け加えます。これだけでもう立派なブックマークレットです。ただ、Bookmarklet - ブックマークレットを作成する際のポイントにまとめられているようないくつか注意点があります。

特に式の結果を返す操作にはやられました。最後にブックマークレットから値が返ってくるとそのページにジャンプしようとしてエラーになってしまいます。これを避けるには、ワンライナー全体をvoid()の中に入れてしまうこと。

よって、ブックマークレットの基本形は、次のようになります。


javascript:void(ワンライナー)

あるページのURLからデータを抽出するのに、クリップボードの内容を読み取るJavaScriptが便利だと思っていた。しかし、これはInternetExploreでしか使えなかった。しかしブックマークレットならば、InternetExploreだけでなくOperaやFirefoxでも同じことができた。

ブックマークレットを極めるには奥が深そうですが、スクリプトなので修正も簡単でとっても便利。

2004.12.14

価格比較:最安値の推移をグラフ化

最安値は、安くなったり高くなったり日々変動しています。価格を比較した表を見るとその時の価格は分かるが、どのくらいの早さで最低価格が下降する傾向にあるかを知ることができない。

そこで、GNUPlotを使って最低価格の変化をグラフ化してみた。

このグラフを見ると、ぐんぐん最低価格が下がっているときには買うのをもう少し待ってみるとか、あまり変わらないから買ってしまおうという判断材料になる。

店舗ごとの価格もプロットするとライバル店が下げると負けずに値下げするとかが分かるかも。最低価格のみでなく店舗ごとのグラフ化は、今後の課題とする。

クレジットカードで買える大手カメラ量販店を含めたカモノハシの価格比較

2004.12.11

JavaScript: URL エンコードする

URLには、いくつか使ってはいけない文字がある。そのような文字を含んだキーワードなどをURLに含めたいときには、後で戻せるような統一のルールにのっとってそれらの文字を置き換える必要がある。

そのためのルールが、RFC 1738で規定されているURL encodeと呼ばれるエンコード方法。

JavaScriptには、危険な文字をエンコードするにはescape()という関数があります。しかし、この関数でエンコードするのはどうも良くないらしい(*1)。

ということで、Internet上にあるソースを改造した自作の関数(URLencode)を使っていました。

しかし、最近encodeURIComponent()という関数が使えるようになったそうです(*2)。また似た関数にencodeURI()もあります。こちらは、エスケープしない文字がいくつかあるので、あまり用がないかな。

ただこれらの関数は、最近定義されたのでブラウザーのバージョンによっては使えないものもあるらしい。ブラウザーのシェアで見るとこの関数を使ってもほとんど問題ないが、まだ全てではないのでしばらくは自作の関数を使うことになりそう。

*1
Escape

*2
JavaScriptにおけるURLエンコードの処理

もとにしたコードを見つけられなくなってしまったのですが、こんなコード(URLencode)を使っています。

追記(2005-9-15)
日本語を含む文字列をエンコードする方法が間違っていたようなので修正。

JavaScriptの文字列変数は、ページの文字コードではなくUnicodeみたい。なのでUnicodeからUTF-8に変換してURLエンコードするようにしました。UnicodeからUTF-8への変換は、Unicode ⇔ UTF-8(AOK's JavaScript Library)を参照いたしました。

追記(2005-9-16)
UnicodeをSJISに変換した後にURLエンコードするコード
漢字コードの変換ルーチンは、Unicode と JIS / EUC / シフトJIS 間の変換(AOK's JavaScript Library)を参照いたしました。


アクセス解析:特定のページごとのアクセス数を調べる

Google AdSenseに特定のページまたはフォルダーごとのアクセス数を調べられるURLチャンネルという機能が導入された。これに影響されたて特定のページへのアクセス数、特定のページからのアクセス数を時間ごとに調べられるようにした。

  • ページの指定は、URLで入力する。AdSenseと同じようにフォルダーまでの指定ならば、特定のページのみでなくフォルダー以下のアクセスをまとめて解析する。

    URLの替わりに、URLを指定する正規表現でも可能。このときは、正規表現を/(バックスラッシュ)で囲む。たとえば、/\.htm/だと拡張子が.htmのファイルへのアクセスのみを解析する。

  • 時間の指定は、一時間毎または一日毎。

2004.12.07

JavaScript: document.locationとdocument.URL

JavaScriptを使うと、現在表示しているページのURLを取得することができる。

現在表示しているページのURLを表示させるには、document.locationとdocument.URLの二つが使える。どちらも

document.write(document.location)
document.write(document.URL)

とすると現在表示しているページのURLが表示される。

そのためどちらもまったく同じだと考えていました。

しかし、得られたURLの長さを調べようとlengthメソッドを使うと、document.locationのほうは、エラーになってしまいました。

なぜかとtypeof()でそれぞれのクラスを調べてみると、document.URLは予想通りStringであるのに対して、document.locationはObjectでした。

JavaScriptを勉強しなおしてみると、document.locationは現在のURLだけでなく、ホスト名やパス情報などのOjbectをも持っていました。document.write()で表示されていたのは、document.location.hrefだったのです。よって、document.location.hrefとdocument.URLが同じということです。

こんなちょんぼした人は、ぼくだけかな?

ちなみに、document.location.hrefにURLをセットするとそのURLにジャンプします。document.URLで同じかどうかは確かめていません。

2004.12.04

アクセス解析:Referer情報がない。

このブログを読むときなどHTTPでアクセスするときには、どのページから飛んできたかを示す「HTTP-REFERER」という情報がサーバに送ることができます。IEなどのブラウザーは、たいていこの情報を送っています。

昨日WWWサーバーのアクセスログを眺めていたら、この「HTTP-REFERER」の送られてこないアクセスがかなりあることに気がつきました。URLを直接アドレスバーに入力して飛んでくるときには「HTTP-REFERER」が情報はないのですが、割合から見てそうとも思えない。どのブラウザーを使っているかを示す「USER-AGENT」を見ると普通のIEらしい。

ブロック?というキーワードが浮かんだので、「REFERER ブロック」でGoogleにお伺いを立ててみると、「Norton Internet Security」を使っていると「HTTP-REFERER」情報を送らないようにしているらしい。

サイトの中には、「HTTP-REFERER」がないとうまくアクセスできないところもあるようで、特定のサイトへアクセスする時だけこの情報を送るようにも設定できるらしい。

リンクを作成した人にとっては、リンクを作ったことを知られたくないことがあるかもしれないけど、リンクをたどった人にとってはどこから飛んできたかという情報を送っても危険はないと思うのですが、危険なのかな?

「HTTP-REFERER」の送られてこないアクセスがかなりあるということは、これらのソフトはかなり普及しているのですね。
ウィルス対策だけでなく、これも入れたほうがいいのかな。

ノートン・インターネットセキュリティ 2005
シマンテック
Amazonで詳しく見る
platypus.st

アマゾンからのセレクション


価格調査

連係リンク

platypus.st

Access Analysis

  • Access Analysis