Google chrome extension 侦听任何Chrome html用户选项卡上的事件
我想写一个扩展,连接到所有html的Chrome标签页(关键是不包括任何非html内容的标签页,如Google chrome extension 侦听任何Chrome html用户选项卡上的事件,google-chrome-extension,Google Chrome Extension,我想写一个扩展,连接到所有html的Chrome标签页(关键是不包括任何非html内容的标签页,如chrome://extensions/和其他非用户选项卡,因为如果我的业务逻辑代码没有完全排除这些特殊选项卡的处理,那么肯定会导致许多内部错误). 不需要镀铬扩展按钮 然后,我想在这些用户html选项卡上执行一些代码: 当用户单击超链接或按钮时 当导航到新url即将开始时(并获取目标url) 新页面在任何选项卡中加载完毕后(并获取url) 我不确定哪种方法是目前最好使用的,对于上述每一种方法,我最
chrome://extensions/
和其他非用户选项卡,因为如果我的业务逻辑代码没有完全排除这些特殊选项卡的处理,那么肯定会导致许多内部错误). 不需要镀铬扩展按钮
然后,我想在这些用户html选项卡上执行一些代码:
选项卡
对象以这种方式访问url―这是一个错误
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
console.dir(tab);
});
似乎选项卡
对象没有直接指向url
不管这个逐点的问题如何,我想知道实现所描述的整个场景的最健壮的方法是什么:为所有html用户选项卡获取这些事件的通知,并在每种情况下获取url。在官方文档中,很难找到相关的示例。听起来像是内容脚本中经典DOM事件侦听器的工作。您当前的问题是:您似乎没有在manifest.json中的
权限
键中指定选项卡
,这是获取URL信息所必需的。这看起来像是一个问题。虽然您描述的内容需要一个内容脚本和一个背景脚本,但您尝试做的基本事情是:获取有关页面何时将要导航或已导航到新URL的信息是事件的用途(在您的背景脚本中)。注意:webNavigation
events在实际导航时触发,它们不会在URL更新时触发,但不会进行导航。这可能发生在使用AJAX更新页面内容而不实际导航到新页面的单页面站点中。为此,除了webNavigation
之外,您还需要tabs.onUpdated
。