0

我怎么知道我的执行是否成功?
我知道 executeScript 提供回调,但如果脚本由于某种原因被阻止,回调将永远不会发生。

我怎么知道?

4

1 回答 1

1

有两种方法可以检查chrome.tabs.executeScript调用是否成功:

  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 回答