小编use*_*282的帖子

Chrome 扩展:创建新标签(chrome.tabs.create)并在新标签中执行脚本......不工作:(

我目前正在开发一个 Google Chrome 扩展程序,它允许 Pinterest 用户轻松地从一个页面固定多个图像(目前不可用的功能)。为了实现这一点,扩展有一个背景页面和两个内容脚本(contentScript1.js 和 contentScript2.js)。为了清楚起见,我将解释我的扩展程序应该做什么,然后详细说明出现了什么问题。我的扩展程序的(简化的)事件顺序是这样的:

  1. 用户正在网上冲浪,并决定从当前选项卡固定图像,因此他们单击我的扩展程序的浏览器按钮!
  2. 当浏览器按钮被点击时,background.js 文件会向 contentScript1.js 发送一条消息说“嘿,抓住这个页面上的每个 img 标签并允许用户选择它们”
  3. contentScript1.js 从 background.js 接收消息,它调用一个函数来抓取所有图像并将提交按钮附加到页面
  4. 用户点击自己想要的图片,然后点击提交按钮
  5. 单击提交按钮时,contentScript1.js 会向 background.js 发送一条消息
  6. 当 background.js 收到来自 contentScript1.js 的消息时,它会将用户重定向到 pinterest.com 以允许固定。*注意:当使用 pinterest.com 的 url 创建选项卡时,pinterest.com 现在是活动选项卡(chrome.tabs.create 的 chrome 扩展默认值),
  7. background.js 创建新标签后,在当前标签中执行 contentScript2.js,现在是 pinterest.com

好的,除了 contentScript2.js 在任何当前选项卡中执行之外,一切都运行良好。更具体地说,如果我现在打开浏览器,将执行 contentScript2.js 中的 tester 函数。但是,我的 pinterest.com 选项卡仅在适当的时间(单击提交按钮时)创建。根据我的理解,由于 chrome.tabs.create 的默认设置,我不需要在 background.js 和 contentScript2.js 之间使用消息传递。尽管如此,我尝试使用消息传递,但仍然无效?

这是代码:

manifest.json:

    {
  "manifest_version" : 2,

  "name" : "Pin 'em",
  "description" : "Pin multiple images to different Pinterest boards in just two …
Run Code Online (Sandbox Code Playgroud)

javascript google-chrome-extension

7
推荐指数
1
解决办法
1万
查看次数