1

私はGoogle Chrome拡張アプリケーションに取り組んでいます。ブラウザのタブでのユーザーの http リクエストが終了するとすぐに、警告が表示されます。ブラウザがリクエストを終了すると、アプリがそれをリッスンできることを意味します。

現在、以下のコードを使用しています。リクエストが終了した後、タブの URL を読み取ります。

chrome.webRequest.onCompleted.addListener(function() {
    var mydiv = document.createElement('div');  
        chrome.tabs.getSelected(null,function(tab) {
        mydiv.innerHTML = tab.url;      
    });         
    document.body.appendChild(mydiv);
});

しかし、それは私にとってはうまくいきません。何か助けはありますか?

4

1 に答える 1

1

バックグラウンド ページからコードを実行している可能性があります (そうしないと、chrome.webRequest APIが使用できなくなります。そこ (バックグラウンド ページ) から Web ページ DOM を操作することはできません。

次のようにして、必要なものを達成できます。

ソリューション A

  1. "document_end" または "document_idle"コンテンツ スクリプトを Web ページに挿入します。

  2. コンテンツ スクリプト (挿入されると) が作成さdivれ、DOM に追加されます。

ソリューション B

  1. バックグラウンド ページでページの読み込みをリッスンします。ところで、chrome.tabs.onUpdatedの方がこのタスクに適している可能性があります。例えば:

    chrome.tabs.onUpdated.addListener(function(tabId, info, tab) {  
        if (info.status && (info.status == "完了")) {
            // ページが読み込まれるので、コンテンツ スクリプトを挿入します
        }
    });
    
  2. ページの読み込み時に、コンテンツ スクリプトをプログラムで挿入します。

  3. コンテンツ スクリプト (挿入されると) が作成さdivれ、DOM に追加されます。

于 2013-11-01T10:56:11.480 に答える