アナログ
RSS  

PDFをGoogle docs経由で開くをAutoPagerizeに対応2010/09/26 07:23

AutoPagerizeを使い始めたので、「PDFをGoogle docs経由で開く」をAutoPagerize対応にしました。

と言っても前回パクっ参考にしたソースがAutoPagerize対応だったのをAutoPagerize非対応にして使ってたので、元に戻すというのが正しのですけれど……

なので詳細はPDFをGoogle docs経由で開くquerySelector版を見てくださいと。

このスクリプトは次の画像のようにPDF/PTT/TIFのリンクをGoogle docsで開くように書き換え、元のリンクをアイコンにして表示するものです。

PDFのリンクをGoogle Docsに置き換える
// @name           PDF/PPT/TIF viewer with Google docs
// @namespace      http://puppet.asablo.jp/blog/
// @include        http://*
// @exclude        http://docs.google.com/*
// @exclude        http://*.2ch.net/*
// @version        0.4
// ==/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() {
    function handle(node){
        var l = node.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 ='moz-icon://.pdf?size=16';
                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);
            }
        }
    }
    document.body.addEventListener('AutoPagerize_DOMNodeInserted',function(evt){
        var node = evt.target;
        handle(node);
    }, false);
    handle(document);
})();

青い背景の部分が前回との相違点というか参考元からのコピペ。

動作は

Firefox 3.6.10
userChromeJS 1.2
Sub-Script/Overlay Loader v3.0.29mod
userContent.js_1.3 mod6
AutoPagerize 0.0.43

Firefox 4.0b7pre
userChromeJS 1.2
Sub-Script/Overlay Loader v3.0.29mod
UserScriptLoader.uc.js 0.0.9pre
AutoPagerize 0.0.43

で確認しましたが、ご利用は自己責任で。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※投稿には管理者が設定した質問に答える必要があります。

名前:
メールアドレス:
URL:
次の質問に答えてください:
スパムがウザイので合い言葉を入れるようにしました。山と言えば川だろJK


コメント:

トラックバック

このエントリのトラックバックURL: http://puppet.asablo.jp/blog/2010/09/26/5368865/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。