最近はGoogleよりもBingの方が良いという意見を目にします。
そこでGoogle検索結果が納得できないときに、Bingで検索するためのブックマークレットを考えてみました。
Googleの検察結果のページのURLには「q=言葉」という部分があります。
実行すると、これをBingの検察結果のページのURLに当てはめて表示します。
なお逆にBingの検察結果で実行するとGoogleの検索結果が表示されます。
ブックマークレットを次に示します。
bing-google
Firefoxならばブックマークツールバーまでドラッグしてください。
Internet Explorerならば右クリックからお気に入りに保存してください。
javascript:(function(){b="http://www.bing.com/search";g="http://www.google.co.jp/search";d=document.location;if(d.href.match(b)){u=g}else{u=b}d.href=u+"?q="+d.href.replace(/.*[&\?]q=(.*?)&?/,"$1")})()
改行を施したのが次です。
javascript:(function(){
b="http://www.bing.com/search";
g="http://www.google.co.jp/search";
d=document.location;
if(d.href.match(b)){
u=g
}else{
u=b
}
d.href=u+"?q="+d.href.replace(/.*[&\?]q=(.*?)&?/,"$1")
})()
ウェブページの文字列をコピーされないようにする方法として、右クリックを禁止する方法と文字列の選択を禁止する方法が考えられます。
右クリック禁止
右クリックを禁止するにはHTMLを次のように書きます。
<div oncontextmenu="return false;">テキスト</div>
右クリックをして表示されるメニューを「コンテキストメニュー」などと言いますが、これを無効にします。
「div」でなく「body」にこれを設定するとウェブページ全体で右クリックができなくなります。
文字列選択禁止
文字列の選択を禁止するには次のように書きます。
<div onselectstart="return false;">テキスト</div>
文字列を選択しようとしてもできません。
これも「body」に設定するとウェブページ全体で文字列選択ができなくなります。
※IE限定ですが「unselectable=”on”」を使う方法もあります。
無効にするブックマークレット
これらを無効にするブックマークレットを考えてみました。
選択可能
Firefoxならばブックマークツールバーまでドラッグしてください。
Internet Explorerならば右クリックからお気に入りに保存してください。
javascript:(function(){obs=document.all;for(i=0;i<obs.length;i++){obs[i].oncontextmenu='return true;';obs[i].onselectstart='return true;';}})()
bodyだけでなく、すべてのタグについて、onselectstartとoncontextmenuに「return true;」をセットします。
なお、ここに挙げた方法がすべてではありません。これら以外にも文字列選択を禁止する方法はあります。例えば「document.onmousedown=”return false;”」のようにドキュメントに対してクリックそのものを禁止したりする方法もあります。そのため、すべてのパターンに対応したブックマークレットを作るのはかなり面倒です。頻繁に利用するページならばブックマークレットを使うのは効果がありますが、そうでないならばソースを直に見てしまうのが確実です。
テキストボックスを操作するブックマークレットのサンプルです。
これをアレンジすれば色々と使えると思います。
IE、Firefox、Chromeで動作確認しました。
削除
「t0」というIDが付いたテキストボックスを操作します。
テキストボックスのテキストから「bbb」という文字列を削除します。
javascript:(function(){a=document.getElementById('t0');a.value=a.value.replace(/bbb/g,'');})()
追加
テキストボックスのテキストに「bbb」という文字列を追加します。
javascript:(function(){a=document.getElementById('t0');a.value=a.value+'bbb';})()
ウェブページ上にある「平成23年」という文字列を西暦に換算し「平成23年(2011年)」に置換して表示するブックマークレットを作りました。
IE6の文字制限である508文字に合わせたので、寛保元年(西暦1741年)以降に対応します。 続きを読む…
インターネットで法令を見るときには、e-Gov(イーガブ)の法令データ提供システムがよいと思います。総務省のサイトなので信頼できるでしょう。
法令データ提供システム
法律を読むのは面倒なのですが、とりわけ面倒なのは、括弧が多くて長いため、文の構造が分かりにくいところ。
繰り返しを避けたり、正確な表現をしたりするために、必要なのは分かりますが、とにかく読みにくい。
とりあえず、とばして読もうにも、括弧の対応がよく分からない。
そこでブックマークレットを作りました。 続きを読む…
ブックマークレットの長さの制限は508文字だそうです。
複雑なものを作ると超えてしまうかもしれません。
このような場合はJavaScriptの本体を外部のファイルにする方法を使うとよいです。
javascript:(function(){var%20url='http://xxxx/bm.js';var%20d=document;var%20e=d.createElement('script');e.src=url;d.getElementsByTagName('head')[0].appendChild(e);})();
改行を入れて見やすくしたのが次です。
javascript:(function(){
var url='http://xxxx/bm.js';
var d=document;
var e=d.createElement('script');
e.src=url;
d.getElementsByTagName('head')[0].appendChild(e);
})();
まずJavaScriptのファイル(bm.js)を適当な所に置きます。
このファイルを参照するscriptタグを作り、headタグの中に置く、というようなことをやっています。
これで任意のページに対してJavaScriptが実行されることになります。
例えば「bm.js」として
と書くとブックマークレットの中にはそのような命令はないのに実行すると「test」というアラートが表示されます。
「ブックマークレットを配布したのだが、修正したい」というようなときも、ブックマークレットそのものは変えず、参照する外部ファイルを修正すれば済む、というような使い方もできます。
JavaScriptを使って、ブラウザ上の選択された文字列を取得する方法を示します。
IEの場合は、documentに対して、「selection.createRange().text」を使うと取得できます。
Firefoxの場合は、documentまたはwindowに対して、「getSelection()」を使います。
次は選択された文字列をアラートで表示させる例です。
HTML
JavaScript
function alert_selection(){
x=document;
y=window;
if(x.selection){
t=x.selection.createRange().text;
}else if(y.getSelection){
t=y.getSelection();
}else if(x.getSelection){
t=x.getSelection();
}
alert(t);
}
これを応用すると次のようなブックマークレットを作ることができます。
選択した文字列をGoogleで検索するブックマークレットです。最近のIEには右クリックからGoogle等で検索する機能がありますが、古いIEにはそれがありません。このブックマークレットで似たようなことができます。
選択文字列をGoogleで検索
Internet Explorerならば右クリックからお気に入りに保存してください。
javascript:(function(){x=document;y=window;if(x.selection){t=x.selection.createRange().text;}else%20if(y.getSelection){t=y.getSelection();}else%20if(x.getSelection){t=x.getSelection();};location.href='http://www.google.co.jp/search?q='+encodeURIComponent(t)+'';})();
自分のウェブサイトのタイトルとURLをTwitterに投稿するための「リンク」は次のように書きます。
<a href="javascript:(function(){window.open('http://twitter.com/home/?status=' + '〈' + document.title + '〉' + document.location.href)})()">Twitterに投稿</a>
そして、この「リンク」を右クリックしてブックマークに登録するとブックマークレットになります。この場合は自分のウェブサイトでなくても使えます。
Twitterに投稿
ウェブサイトのテキストボックスに文字列をセットしたり、リストボックスの選択肢を選んだりすることがありますが、いつも同じページで同じ作業をするのは苦痛です。
ブックマークレットを使うと自動化することができます。
ここではブックマークレットの作り方を説明します。 続きを読む…
ブックマークレットで、取得した何らかの結果を表示させるにはアラートまたはプロンプトを使う。
javascript:(function(){alert('sample');})()
javascript:(function(){a=window.prompt('title','sample');})()
promptを使った場合は、IEならば、文字列がテキストボックスに出力され、選択状態になるので、コピーが簡単である。
最近のコメント