0

バージョン 27 で拡張機能の処理に重大な変更があったかどうかは誰にもわかりませんか? 無効化されたマニフェスト バージョン 1 という意味ではありません。

unsafeWindow (実際の Web サイト DOM へのアクセス) のシミュレーションが機能しないという問題があります。v27 より前では問題なく機能していましたが、v27 以降では、サンドボックス ウィンドウのように「安全な」DOM しか取得できません。物体。

マニフェスト バージョン 2 をずっと前に有効にしましたが、それは問題ではないようです。

私の簡単な例 Minifest (必要な部分のみ):

{
    "manifest_version": 2,
    ...
    "content_scripts": [
        {
            "matches": ["xxx*", "xxx*", "xxx*"],
            "js": [
                "init.js"
            ],
            "run_at" : "document_start"
        }
    ],
    ...
}

例 init.js: v27 以降、スクリプトはケース console.log("work") に到達しません。これは、unsafeWindow に jQuery インスタンスが含まれていない (Web サイトの実際の dom に含まれている) ためです。v27 より前では、これは常に機能します。

// emulate unsafe window as in firefox
window.unsafeWindow || (
    unsafeWindow = (function() {
        var el = document.createElement('p');
        el.setAttribute('onclick', 'return window;');
        return el.onclick();
    }())
);
var ivb = setInterval(function(){
    if(typeof unsafeWindow.$ == "undefined" || !unsafeWindow.$("body").size()) return false;
    clearInterval(ivb);
    console.log("work");
}, 20);

何か案は?

4

0 に答える 0