Chrome扩展程序 - 同时在多个新标签页中运行executeScript

时间:2016-09-21 19:20:25

标签: google-chrome google-chrome-extension

我正在构建一个带有搜索表单的popup.html的Chrome扩展程序。与Travelocity或Kayak一样,表单包含复选框,因此用户可以选择要查询的网站。

在提交时,popup.js会根据所选复选框启动多个新标签。在每个新标签的tabs.create()回调中,我使用executeScript来: - (A)将用户的查询注入每个新页面的搜索表单中,以及 - (B)在这些页面上提交搜索表格。

当选中一个复选框(即启动新选项卡)时,我的代码正常工作,但是当同时创建多个新选项卡时,似乎执行脚本不能一致地运行。有时它有效,有时它不会。

这让我相信脚本执行的时间存在某种问题,但我不确定。

如果你知道发生了什么,我很乐意听取你的意见。

此外,我对将来如何调试此类问题感兴趣。

这是我在github上的代码...

非常感谢!

1 个答案:

答案 0 :(得分:2)

似乎当你打开多个标签时 - 你的popup.html失去焦点并关闭,所以在tabs.create回调中注入你的代码将不会被执行。

尝试使用" active:false"创建标签。选项,像这样:

chrome.tabs.create({url: stringToObj[org], active:false} ...

我认为这会对你有所帮助。

还...... 这是您的SeSac注入代码中的错误:如果弹出窗口中没有定义搜索类型,则阻止

input[value="undefined"]

将无法找到,因此"已检查"属性将被调用" undefined"这将阻止你注入脚本执行。