PDF/PPT Viewer with Google Docsをqueryselector版に修正した - otsune's SnakeOilを見てからいつか書き直そうと思っていたのですが、Document.querySelectorはFirefox 3.0.xで使えないこともあって放置してました。
今回、某掲示板のPDF(ime.nu経由)は置き換えちゃいけないなぁ(やずやのアレで気がついた)ということで、見直しついでにqueryselector版に書き直すことにしました(Fx 3.0.xのサポートも終了ですし)。
// ==UserScript== // @name PDF/PPT/TIF viewer with Google docs // @namespace http://puppet.asablo.jp/blog/2010/05/01/5055573 // @include http://* // @include https://* // @exclude http://docs.google.com/* // ==/UserScript== // Based on script by Koonies (http://d.hatena.ne.jp/Koonies/): http://userscripts.org/scripts/show/59557 // Based on script by otsune (http://subtech.g.hatena.ne.jp/otsune/20100124/pdfpptviewerwithgoogle) (function() { var l = document.querySelectorAll('a[href$=".pdf"], a[href$=".ppt"], a[href$=".tif"]'); for (var i = 0; i < l.length; i++) { if ((l[i].hostname != "docs.google.com") && (l[i].hostname != "b.hatena.ne.jp") && (l[i].className != 'ujspdflk')) { var logo = document.createElement("img"); logo.src = 'data:image/gif;base64,R0lGODlhEAAQAPMAAACh6P///3BvbtpEQt+Wld5+fNQqJ+PIxu/X1tqwrq49O9doZsfHx6RST4eHh/Dp6SH5BAEAAAAALAAAAAAQABAAAARbEMhJqxQ4a0xF+GDICJMXnsx4nQFSICAJmCFREPF6HgP+ybTQ4JCbsQIGAzEAZCUIhOFDgDCeConAIKkoWEOLxWBBSCgI309hgC3SeANYCJgxKBqOjYwSrVoAEQA7'; logo.border = 0; logo.style.margin = '0'; logo.style.padding = '0'; var orgpdf = document.createElement("a"); orgpdf.href = l[i].href; orgpdf.className = 'ujspdflk'; orgpdf.insertBefore(logo, orgpdf.firstChild); l[i].href = 'http://docs.google.com/viewer?url=' + l[i].href; l[i].target = '_blank'; l[i].parentNode.insertBefore(orgpdf, l[i].nextSibling); } } })();10.05.03 リンク先のホストが「b.hatena.ne.jp」の場合置き換えないように変更
logo.src = 'http://wwwimages.adobe.com/www.adobe.com/ubi/template/identity/adobe/screen/icon/pdf.gif';
logo.src ='moz-icon://.pdf?size=16';
if (location.hostname == "docs.google.com") return;
を省いています。AutoPagerizeへの対応は、変数書き換えてif文以下を参考元と差し替えればいいはずだから説明はいらないと思います。
ime.nuをはてなブックマークと同じように弾くか、2ch.netでスクリプトを起動させないかで少し迷いましたが、2chにPDFが置かれることもないだろうということで、スクリプトを起動させない(上のファイル名の話)ことで回避することにしました。
通常、他のドメインを開くときにワンクッション置くサイトでは、はてなブックマークのようにして置き換えをキャンセルします。
ごちゃごちゃ書きましたが、どうせ私しか
セコメントをする