我正在构建一个带有搜索表单的popup.html的Chrome扩展程序。与Travelocity或Kayak一样,表单包含复选框,因此用户可以选择要查询的网站。
在提交时,popup.js
会根据所选复选框启动多个新标签。在每个新标签的tabs.create()
回调中,我使用executeScript来:
- (A)将用户的查询注入每个新页面的搜索表单中,以及
- (B)在这些页面上提交搜索表格。
当选中一个复选框(即启动新选项卡)时,我的代码正常工作,但是当同时创建多个新选项卡时,似乎执行脚本不能一致地运行。有时它有效,有时它不会。
这让我相信脚本执行的时间存在某种问题,但我不确定。
如果你知道发生了什么,我很乐意听取你的意见。
此外,我对将来如何调试此类问题感兴趣。
这是我在github上的代码...
非常感谢!
答案 0 :(得分:2)
似乎当你打开多个标签时 - 你的popup.html失去焦点并关闭,所以在tabs.create回调中注入你的代码将不会被执行。
尝试使用" active:false"创建标签。选项,像这样:
chrome.tabs.create({url: stringToObj[org], active:false} ...
我认为这会对你有所帮助。
还...... 这是您的SeSac注入代码中的错误:如果弹出窗口中没有定义搜索类型,则阻止
input[value="undefined"]
将无法找到,因此"已检查"属性将被调用" undefined"这将阻止你注入脚本执行。