Mar 19, 2007

アメブロのオフィシャルブログ画像保護機能を無効化するGreasemonkeyスクリプト

現在見ているページをGM_xmlhttpRequestで受信するため、amebloのPVが増えます。さすがYappoです。
http://subtech.g.hatena.ne.jp/yappo/20070319/1174293065

なのでちょっと書き直してみました。
http://la.ma.la/misc/userjs/ameblo_sucks.user.js

イベントはremoveEventListenerで外したいところですが、元の関数が参照できないと無効化できないので、onclickやoncontextmenuに直接代入してます。GreasemonkeyではDOMへの参照はラッピングされたオブジェクトが帰ってくるのでunsafeWindow経由で操作を行う必要があります。

Greasemonkey以外のuserjs実装でも動くように書いてみたつもりです。
どうぞご利用ください。

追記

JavaScriptで追加された既存のイベントを全部消したかったら、こういうブックマークレットでOK。
javascript:document.body.innerHTML=document.body.innerHTML;void(0);

ただし再描画されるのでそれなりに重い可能性があるのと、有効になってて欲しいイベントも消えてしまうことがある。
なのでYappoさんのGreasemonkeyと同等のコードはこれで出来る。
(function(){
    var w = (typeof unsafeWindow == 'undefined') ? window : unsafeWindow;
    var onload = w.onload;
    w.onload = function(){
        onload();
        document.body.innerHTML = document.body.innerHTML;
    }
})();
Posted at 19:09 | WriteBacks (4) | Edit
Edit this entry...

wikieditish message: Ready to edit this entry.
















A quick preview will be rendered here when you click "Preview" button.