PDFをGoogle docs経由で開くquerySelector版
2010-05-01


禺画像]

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」の場合置き換えないように変更
10.09.26 AutoPagerize対応はこちら

PDFアイコンは
logo.src = 'http://wwwimages.adobe.com/www.adobe.com/ubi/template/identity/adobe/screen/icon/pdf.gif';
の方が文字数的に楽かも。
あるいはリンクをアイコンごとコピペしないなら、OSで関連付けされているアイコン
logo.src ='moz-icon://.pdf?size=16';
にするともっと楽かも。

パクり参考元との違いは

AutoPagerizeへの対応は、変数書き換えてif文以下を参考元と差し替えればいいはずだから説明はいらないと思います。

ime.nuをはてなブックマークと同じように弾くか、2ch.netでスクリプトを起動させないかで少し迷いましたが、2chにPDFが置かれることもないだろうということで、スクリプトを起動させない(上のファイル名の話)ことで回避することにしました。
通常、他のドメインを開くときにワンクッション置くサイトでは、はてなブックマークのようにして置き換えをキャンセルします。

ごちゃごちゃ書きましたが、どうせ私しか


続きを読む

[Firefox]
[Add-ons]
[Script]

コメント(全0件)
コメントをする


記事を書く
powered by ASAHIネット