Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google chrome extension 侦听任何Chrome html用户选项卡上的事件_Google Chrome Extension - Fatal编程技术网

Google chrome extension 侦听任何Chrome html用户选项卡上的事件

Google chrome extension 侦听任何Chrome html用户选项卡上的事件,google-chrome-extension,Google Chrome Extension,我想写一个扩展,连接到所有html的Chrome标签页(关键是不包括任何非html内容的标签页,如chrome://extensions/和其他非用户选项卡,因为如果我的业务逻辑代码没有完全排除这些特殊选项卡的处理,那么肯定会导致许多内部错误). 不需要镀铬扩展按钮 然后,我想在这些用户html选项卡上执行一些代码: 当用户单击超链接或按钮时 当导航到新url即将开始时(并获取目标url) 新页面在任何选项卡中加载完毕后(并获取url) 我不确定哪种方法是目前最好使用的,对于上述每一种方法,我最

我想写一个扩展,连接到所有html的Chrome标签页(关键是不包括任何非html内容的标签页,如
chrome://extensions/
和其他非用户选项卡,因为如果我的业务逻辑代码没有完全排除这些特殊选项卡的处理,那么肯定会导致许多内部错误). 不需要镀铬扩展按钮

然后,我想在这些用户html选项卡上执行一些代码:

  • 当用户单击超链接或按钮时

  • 当导航到新url即将开始时(并获取目标url)

  • 新页面在任何选项卡中加载完毕后(并获取url)

  • 我不确定哪种方法是目前最好使用的,对于上述每一种方法,我最初也无法访问url。目前,我正在尝试一个背景标签(我真的应该吗?)。问题是我无法通过
    选项卡
    对象以这种方式访问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