0

実行が成功したかどうかを知るにはどうすればよいですか?
executeScript がコールバックを提供することは知っていますが、何らかの理由でスクリプトがブロックされた場合、コールバックは発生しません。

どうすればそれを知ることができますか?

4

1 に答える 1

1

chrome.tabs.executeScript呼び出しが成功したかどうかを確認するには、次の 2 つの方法があります。

  1. resultsプロパティが配列であるかどうかを確認します (失敗すると未定義になります)。
  2. chrome.runtime.lastErrorプロパティが設定されているかどうかを確認します (これが推奨される方法です)。
chrome.tabs.executeScript(tabId, {
    code: '// some code'
}, function(result) {
    if (chrome.runtime.lastError) { // or if (!result)
        // Get the error message via chrome.runtime.lastError.message
        return;
    }
});

前の例は、コンテンツ スクリプトの挿入中にエラーが発生した場合のみを示しています。実行時エラーのエラーは表示されません。スクリプトでエラーが発生したかどうかを確認するには、そのタブの devtools を開きます。バックグラウンド ページからエラーが発生したかどうかを知る必要がある場合は、コンテンツ スクリプトから値を返して、スクリプトが正しく実行された (されていない) ことを通知します。最後の式
の値がのコールバックに渡されます( が設定されている場合は複数の値が渡されるため、配列内で)。chrome.tabs.executeScriptallFrames:true

于 2013-08-19T09:20:09.360 に答える