相关疑难解决方法(0)

删除匿名事件侦听器

无论如何要删除像这样添加的事件监听器:

element.addEventListener(event, function(){/* do work here */}, false);
Run Code Online (Sandbox Code Playgroud)

没有替换元素?

javascript greasemonkey addeventlistener userscripts

45
推荐指数
6
解决办法
2万
查看次数

等待 chrome.tabs.update 选项卡完成加载

我正在尝试开发 chrome 扩展,并尝试依靠 sendMessage 来清理我的一些代码。但是,回调函数会在页面完成加载之前激活,因此在新选项卡的情况下,没有人会收到消息,而在现有选项卡的情况下,从中移动的页面会收到消息(但这不是我想要的) )。我寻找过其他人询问新选项卡的问题,但没有明确的答案,我见过的最好的建议是创建一个全局变量并为选项卡加载创建一个监听器,并将其与该全局变量进行比较。

所以问题是,有没有办法在回调函数中等待,直到页面加载,或者我是否创建一个 JS 对象数组,其中包含我正在等待的选项卡以及我想要发送到该选项卡的信息。

供参考的是后台javascript文件中的相关代码。

   chrome.tabs.sendMessage(tab.id, {info: "info"}, function(response)  
   {
     //This line isn't used when I am navigating without changing tabs
     chrome.tabs.create({url: response.info.linkUrl}, function(tab1)
     {
       chrome.tabs.update(tab1.id, {url: response.info.linkUrl}, function(tab2)
       {
         chrome.tabs.sendMessage(tab2.id, {info: "More Info"});
       });
     });
   });
Run Code Online (Sandbox Code Playgroud)

否则,一旦我的 sendMessage 被延迟到足以让我亲眼看到,我就能够确认我的所有选项卡侧代码都有效。我的代码能够始终如一地通过正在导航的页面上的验证,通过检查 document.url 进行确认。

google-chrome-extension

5
推荐指数
1
解决办法
3944
查看次数