0

私がやろうとしていること

これは、ページが読み込まれると、div「example」クラスの子を含む を非表示にする拡張機能です。

何が起こるのですか

何もない。ページに配置したものはjsすべて無視されます。コンソールを使用してページ アラートを作成しようとしましたが、何も機能しません。

コード

manifest.json:

{
"name": "Example",
"version": "1.0",
"default_locale": "en",
"permissions": [
    "http://example.com/*"
    ],
"content_scripts": [
    {
        "matches": [
            "http://example.com/*"
        ],
        "js": [
            "js/jquery/jquery.js",
            "src/inject/inject.js"
        ]
    }
]
}

src/inject/inject.js:

chrome.extension.sendMessage({}, function(response) {
var readyStateCheckInterval = setInterval(function() {
    if (document.readyState === "complete") {
        clearInterval(readyStateCheckInterval);

                    //Nothing here actually happens
                    alert("Extension loaded");
                    console.log("Extension loaded");

                    //The script that I *want* to happen
                    $('.example-stamp').parent().parent.().parent().hide();
    }
}, 10);
});

ノート

jquery.jsファイルはjQuery.comからの最新のダウンロードです。アンパックされた拡張機能を Chrome にロードしてもエラーは発生せず、コンソールには何も (エラーも含めて) 表示されません。

でテストしていますhttp://www.example.com

4

2 に答える 2

0
  • chrome.extension.sendMessageコンテンツ スクリプトからバックグラウンド ページまたは他の拡張ページにメッセージを送信するために使用されます。コンテンツ スクリプトを定義しているだけなので、そのメッセージは受信されず、コールバック関数は呼び出されません。
  • 通常、DOM を操作するためにドキュメントの完了ステータスを待つ必要はありません。デフォルトでは、Chrome は でコンテンツ スクリプトを実行します。これはdocument_idle、ドキュメントの準備ができてからドキュメントが完成した直後までの間です。コンテンツ スクリプトrun_atの定義でマニフェスト パラメータを参照してください
  • ページの読み込みが終了したときにコードを実行する必要がある場合は、ウィンドウ読み込みイベントを設定run_atdocument_startてリッスンできます。jQueryを使用しているため、次のことができます。
$(window).on("ロード", function() {
    console.log("拡張機能が読み込まれました");
    $('.example-stamp').parent().parent.().parent().hide();
});
于 2013-09-08T13:54:04.100 に答える