実行が成功したかどうかを知るにはどうすればよいですか?
executeScript がコールバックを提供することは知っていますが、何らかの理由でスクリプトがブロックされた場合、コールバックは発生しません。
どうすればそれを知ることができますか?
実行が成功したかどうかを知るにはどうすればよいですか?
executeScript がコールバックを提供することは知っていますが、何らかの理由でスクリプトがブロックされた場合、コールバックは発生しません。
どうすればそれを知ることができますか?
chrome.tabs.executeScript
呼び出しが成功したかどうかを確認するには、次の 2 つの方法があります。
results
プロパティが配列であるかどうかを確認します (失敗すると未定義になります)。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.executeScript
allFrames:true