2008/08/14

Flickr検索用Bookmarklet (Internet Explorer)

Wikitravel用検索Bookmarkletを作った後、それをベースにウィキトラベルで利用できるライセンス (CC-BY, CC-BY-SA) の写真をフリッカーで検索するブックマークレットを作ってみました。検索条件に「クリエイティブ・コモンズ 表示 (CC-BY)」又は「クリエイティブ・コモンズ 表示-継承 (CC-BY-SA)」により使用許諾された画像であることを組み込んであります。Internet Explorerで動きます(Windows XP Service Pack 3で確認)。Firefox・Safari用は別途作成しています。

使い方は次の通りです。
そのままブックマークレットをクリックした場合
→ IE6ではプロンプトを表示し、そこに入力されたキーワードでフリッカーを検索します。IE7では何も行いません。
文字列を選択した状態でブックマークレットをクリックした場合
→ 選択した文字列でフリッカーを検索します。
Wikitravelの検索結果ページ (*) でブックマークレットをクリックした場合
→ レフトナビの検索box内のキーワードでフリッカーを検索します。
* ··· ウィキペディアなどのMediaWikiを使用しているサイト(検索boxがId="searchInput"となっているサイト)の検索結果ページでは、Wikitravelと同じ動作(レフトナビの検索box内のキーワードによる検索)になります。

ブックマークレットの入手方法

"Flickr CC images"のリンクを右クリックして「お気に入りに追加」を選択して保存して下さい。

IE6用 — Flickr CC images


IE7用 — Flickr CC images


IE7用ではポップアップブロックを回避するため、prompt()によるプロンプトを表示しないことにしました。(IE7でprompt()によるプロンプトを動かすための設定もあるようなので、この設定であれば上のIE6用ブックマークレットがIE7で動くかも知れません。でも、安全性を高めるためのポップアップブロックだと思うので、この設定は使わない方が良さそうな気がします。)

コード

後で見たくなるような気がするのでここに置いておくことにしました。読み易くするために改行とインデントを入れてあります。

IE6用

javascript:

G='http://flickr.com/search/?q=';
L='&l=commderiv';
T=document.selection.createRange().text;

if(document.getElementById('searchInput'))
 V=document.getElementById('searchInput').getAttribute('value');

if(T!=''){

 location.href=G+encodeURIComponent(T)+L;

}
else{

 if((typeof V == 'undefined')||(V=='')){
  void(V=prompt('Keywords',''));
 };

 if(V){
  location.href=G+encodeURIComponent(V)+L;
 }

}


IE7用

javascript:

G='http://flickr.com/search/?q=';
L='&l=commderiv';
T=document.selection.createRange().text;

if(document.getElementById('searchInput'))
 V=document.getElementById('searchInput').getAttribute('value');

if(T!=''){

 location.href=G+encodeURIComponent(T)+L;

}
else{

 if((typeof V == 'undefined')||(V=='')){
  void(0);
 }
 else{
  location.href=G+encodeURIComponent(V)+L;
 }

}
Atom