Google検索のインスタントプレビューを無効にするユーザースクリプト
Posted: Updated:
続編あります -> Googleインスタントプレビュー殺しのユーザースクリプトをアップデートした
Ajax化された処理にも対応したので,よろしければどうぞ.
Google検索のインスタントプレビューを無効にするユーザースクリプト
DL&インストールはこちら => Disable GOGL Instant Previews for Greasemonkey
インストールするだけで動作します。いずれもMac版のみですが、以下の環境で動作を確認しました。
- Firefox3.6 + GreaseMonkey
- Safari5 + GreaseKit
- Chrome7
インスタントプレビューが、誤クリックで読み込みが始まってしまって鬱陶しいので、カッとなって無効化してみました。サイドバーの時は気にならなかったんですけど、今回の機能はアグレッシヴで個人的にダメ。
ユーザースクリプトは、Userscripts.orgにアップロードしてみました。こういうところにアップロードしてみるの、ちょっと憧れだったのです。(*´▽`)
以下蛇足で、動作内容とか初挑戦メモとか
vscというクラスが検索結果1件1件をラップしているんですが、それのclickイベントでインスタントプレビューが起動しているようだったので、大ざっぱにvscクラスそのものを削除しちゃいました。
スクリプト本体 (公開時点)
(function(){
var vsc = document.querySelectorAll('div.vsc'),
iz = vsc.length,
i = 0;
for ( ; i < iz; i++ ) {
vsc[i].className = '';
}
})();
初ユーザースクリプトでした。すごく単純な動作ですが、プレーンなJavaScriptのみでちゃんと書くことが少なかった為、無駄に引っかかったところもあり、以下メモ。
ユーザースクリプトの作法
// ==UserScript==
// @name Disable GOGL Instant Previews
// @namespace http://havelog.ayumusato.com/
// @description Disable Google Instant Previews.
// @include http://*.google.*/search*
// @version 1.1
// ==/UserScript==
@ name : そのまんま、スクリプトの名前。
@ namespace : name + namespaceで一意性を保っているらしく、作者のサイトURLなどが一般的らしい。
@ description : そのまんま、スクリプトの説明。
@ include : スクリプトの適用範囲。正規表現じゃなくて、単純にワイルドカード( * )が認められているだけ。
@ version : そのまんま、バージョン表記。アップデートのサポートとかあるだろうから、ちゃんと書いた方が良さそう。
getElementByClassNameが挙動不審
var vsc = document.getElementByClassName('vsc');
本来は10個とれるはずの要素が、半分ぐらいずつしか取得できない。謎。setIntervalでvscがなくなるまで、繰り返したら動作はしましたけど...色々間違ってる。
Chromeでwindow.addEventListenerって動作しない?
window.addEventListener('load', function()
{
// chromeで動かない
});
ロードが終わったあとに実行するほうがベター的な記述を見つけて、書いたのですが微妙に罠でした。
DOMContentLoadedとかにも変えてみましたが、同様にChromeで動作せず。同じWebKit系のSafariで大丈夫だったのでやっぱり謎。ブラウザ間の差違の理解度が低いなぁ。結局は不要だったので削除して事なきを得る。
参考サイト
検索して他のサイトも調べましたが、ここだけ見ればOKだと思います。