PR

Weblioのブックマークレット検索を別ウィンドウで開く

XWSS017736_s4

今や人気の横断辞書検索サイトとなったWeblio(ウェブリオ)。

辞書の追加のほか、ちょこちょこ機能も追加されているようで、「ブックマークレットでWeblio検索」というものもあった。また、Firefox のアドオンやChrome の拡張機能なども用意されているようで、対応の幅も広がっているようだ。

スポンサードリンク

ブックマークレットから検索

さて、ただでさえ様々な機能拡張をしているブラウザに余計な追加はしたくないと思ったところ、「ブックマークレット」から検索を呼び出すことができるとあった。

ブックマークを選択すれば、お気に入りのウェブサイトにジャンプできるわけだけれど、ウェブサイトのアドレスの代わりにスクリプトを入れておくと、もう少し手の込んだ動作をさせることができる。例えば、文字数カウントなどもそうだ。

ウェブリオも同じような実装で、「選択されたテキストをウェブリオの検索用URLとして開く」スクリプトを公開している。

公開されているスクリプト

javascript:( function(){
    x = document;
    y = window;
    if( x.selection ){
        query = x.selection.createRange().text;
    }else if( y.getSelection ){
        query = y.getSelection();
    }else if( x.getSelection ){
        query = x.getSelection();
    };
    location.href = 'http://www.weblio.jp/content/' + encodeURIComponent(query) + '';
})();

※可読性を確保するため、展開して記載しています

公開されているスクリプトをFirefox 20.0.1 で試用したところ、確かに動作した。だが、同じタブないでページ移動してしまうため、読んでいる記事から離れてしまう。別のタブに検索結果を表示することはできないだろうか。

新しいウィンドウで開く

サクッと検索すると「location.hrefで別ウィンドウを開く|なかよしブログ」が解決策を教えてくれる。

同ページの解決策を見やすく表示すると、次のようになった:

onclick="                      location.href='http://twitter.com/#!/kyoplusplus';"
onclick="var w=window.open();w.location.href='http://twitter.com/#!/kyoplusplus';"

※上段の問題を解決したものが下段

つまり、解決するには、location.href 手前に「var w=window.open();w.」を追加してやれば良いということだ。

スクリプトの改変

javascript:( function(){
    x = document;
    y = window;
    if( x.selection ){
        query = x.selection.createRange().text;
    }else if( y.getSelection ){
        query = y.getSelection();
    }else if( x.getSelection ){
        query = x.getSelection();
    };
    var w = window.open();
    w.location.href = 'http://www.weblio.jp/content/' + encodeURIComponent(query) + '';
})();

解決策を取り入れたブックマークレットは上のようになる。

といっても、まずは、ウェブリオの指示通りにブックマークレットを追加して、location.href 手前に「var w=window.open();w.」を追加してやるだけで解決する。

試用したところ、期待した動作をした。

余談

余談だが、こういうウェブサイトを作ってみたいなーとは思っていた人は多い だろうが、権利関係などが面倒で諦める人も多かったはず。しかし、ウェブリオは、それらの問題を字のごとく「足で稼いで」解決したとのこと。実際に出向い て全くの無名の状態から許諾を得るという活力には脱帽せずにいられない。また、右上に表示されるサイコロのような、ちょっとマニアック(?)な表現も違っ た所で楽しませくてくれる。

コメント