Google chrome Chrome扩展--同时在多个新选项卡中运行executeScript

Google chrome Chrome扩展--同时在多个新选项卡中运行executeScript,google-chrome,google-chrome-extension,Google Chrome,Google Chrome Extension,我正在构建一个Chrome扩展,它有一个带有搜索表单的popup.html。与Travelocity或Kayak一样,该表单包含复选框,用户可以选择要查询的站点 提交时,popup.js根据所选复选框启动多个新选项卡。在tabs.create()回调中,我使用executeScript为每个新选项卡执行以下操作: -(A)在每个新页面的搜索表单中插入用户的查询,以及 -(B)在该等网页上提交查册表格 当选中一个复选框(即启动新选项卡)时,我的代码正常工作,但当同时创建多个新选项卡时,execut

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

提交时,
popup.js
根据所选复选框启动多个新选项卡。在
tabs.create()
回调中,我使用executeScript为每个新选项卡执行以下操作: -(A)在每个新页面的搜索表单中插入用户的查询,以及 -(B)在该等网页上提交查册表格

当选中一个复选框(即启动新选项卡)时,我的代码正常工作,但当同时创建多个新选项卡时,executeScript似乎运行不一致。有时有效,有时无效

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

如果你知道发生了什么事,我很想听听你的建议

另外,我希望将来能提供有关如何调试此类问题的任何资源

这是我在github上的代码

  • 整体回购:
  • manifest.json
  • popup.html
  • popup.js(最相关的文件)

非常感谢

似乎当您打开多个选项卡时,您的popup.html会失去焦点并关闭,因此在tabs.create回调中插入的代码将不会执行

尝试使用“active:false”选项创建选项卡,如下所示:

chrome.tabs.create({url: stringToObj[org], active:false} ...
我想这会对你有帮助

而且。。。 这是SeSac注入代码中的一个错误:如果在弹出窗口中没有定义搜索类型,请阻止

input[value="undefined"]

将找不到,因此将对“undefined”调用“checked”属性,这将停止您注入脚本的执行

很抱歉,我应该问一个关于调试的更具体的问题——我熟悉devtools,但在本例中,我没有找到一种方法向刚刚打开的选项卡添加断点。如何调试executeScript插入的代码?此外,您还提到了带有搜索参数的直接URL。我正在查询的两个站点没有支持此功能的URL结构。我想你可以在我的代码中看到,我尽可能使用直接URL。谢谢你的帮助!:)太棒了,谢谢!这正是问题所在!关于“未定义”搜索类型问题,输入验证是我下一个要实现的功能。再次感谢。:)很高兴帮助你!祝你好运!:)