我正在编写一个Chrome扩展程序,用于分析用户访问的网站。我决定使用chrome.tabs.onUpdated来运行我的分析脚本而不是manifest.json中的content_scripts,因为chrome.tabs.onUpdated在AJAX重型站点上更好地完成页面刷新。
我不需要分析对新的空标签页或chrome-extension://(本地)页面的更新,如果我尝试将脚本注入这些标签页,实际上会引发错误。是否有更自动的方式来忽略这些页面,或者我必须使用Try / Catch块手动方式或通过分析URL来实现?我确信我可以手动完成,但似乎应该有一种更自动的方法来实现这一点。
答案 0 :(得分:0)
您可以通过过滤以aws_apigatewayv2_integration
开头的URL来忽略所有本地或内部chrome扩展名URL:
'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")
}
});
中拥有tabs
权限,否则manifest.json
将是tab.url
,这将不起作用。如果您没有获得undefined
权限,那么最好的选择就是在尝试注入时捕获并处理错误。