Google chrome extension 使用chrome.tabs.onUpdate时忽略本地URL

Google chrome extension 使用chrome.tabs.onUpdate时忽略本地URL,google-chrome-extension,Google Chrome Extension,我正在写一个Chrome扩展,分析用户访问的网站。我决定使用chrome.tabs.onUpdated来运行我的分析脚本,而不是manifest.json中的content_脚本,因为chrome.tabs.onUpdated可以更好地在AJAX密集型网站上进行页面刷新 我不需要分析新的空选项卡或chrome extension://(本地)页面的更新,事实上,如果我尝试向这些选项卡中插入脚本,就会抛出错误。有没有一种更自动的方法来忽略这些页面,或者我必须用Try/Catch块或通过分析URL来

我正在写一个Chrome扩展,分析用户访问的网站。我决定使用chrome.tabs.onUpdated来运行我的分析脚本,而不是manifest.json中的content_脚本,因为chrome.tabs.onUpdated可以更好地在AJAX密集型网站上进行页面刷新


我不需要分析新的空选项卡或chrome extension://(本地)页面的更新,事实上,如果我尝试向这些选项卡中插入脚本,就会抛出错误。有没有一种更自动的方法来忽略这些页面,或者我必须用Try/Catch块或通过分析URL来手动忽略这些页面?我相信我可以手动完成,但似乎应该有一种更自动的方法来完成这项工作。

您可以通过过滤掉以
'chrome'开头的所有本地或内部chrome扩展URL来忽略它们:

// Listen for changes on tabs
chrome.tabs.onUpdated.addListener(function(tabId, info, tab) {
    log_console('tab', tab)

    // If tab is not an internal chrome tab
    if (!tab.url.startsWith('chrome')) {
        console.log('Non-internal URL updated")
    }

});
请注意,如果要访问URL,您需要在
manifest.json
中使用
tabs
权限,否则
tab.URL
将是
未定义的
,这将不起作用。如果您无法获得
选项卡
权限,最好的办法可能是在尝试注入时捕获并处理错误