【问题标题】:chrome.tabs.executeScript - succeeded?chrome.tabs.executeScript - 成功了吗?
【发布时间】:2013-08-19 09:04:51
【问题描述】:

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

我怎么知道?

【问题讨论】:

    标签: javascript google-chrome-extension


    【解决方案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.executeScript的回调(在一个数组中,因为在设置allFrames:true时会传递多个值)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-16
      • 1970-01-01
      • 2023-03-19
      相关资源
      最近更新 更多