我正在编写一个 Chrome 扩展程序,其中一部分是,当单击弹出页面上的按钮时,我需要获取当前选项卡的标题和 URL。
我以前曾使用过 Chrome 的消息传递系统,经过多次努力,我成功地让它工作了很多次。但是,我从来没有将它们与弹出页面一起使用,而且从我所读到的内容来看,这样做要困难得多。
到目前为止,我设法弄清楚的时间表是这样的:
popup.html
/popup.js
: 按钮被点击popup.html
/popup.js
: 请求/消息被发送到内容脚本contentScript.js
:从弹出页面收到请求/消息contentScript.js
: 当前选项卡的标题和 URL 存储在一个变量中contentScript.js
: 2 个变量作为字符串化响应发送popup.html
/popup.js
:从响应中解析出 2 个变量
通常我能够弄清楚这一点,但是,我已经阅读了一些在工作中引发了扳手的事情,例如:
chrome.tabs.getSelected
只能在后台页面/脚本中使用。这是否意味着根本不需要使用内容脚本?- 消息不能直接从内容脚本发送到弹出页面,它们必须通过后台页面
- 必须先确认弹出窗口存在,然后才能将消息传递给它(尽管我想我知道该怎么做)
我已经发现 Chrome 的消息传递系统已经够难了,但这完全让我感到困惑。因此,这篇文章。