如何动态地将chrome扩展ID发送到网页以进行消息传递
How to dynamically send chrome extension ID to a webpage for message passing
我通过内容脚本在网页中注入脚本。在脚本中,我使用chrome.runtime.sendMessage成功地向后台脚本发送了一条消息。但是我的分机号是硬编码的。如何在网页中动态注入扩展id以向后台脚本发送消息?
chrome.runtime.sendMessage(extensionIdHardCoded, {
msg: data
},
function(response) {});
首先,如果您已经有了内容脚本,则不必使用externally_connectable
进行通信——您可以使用自定义事件与将其转发到后台的内容脚本进行通信。
也就是说,在注入脚本之前,您可以使用chrome.runtime.id
并将其传递到窗口上下文:
var script = document.createElement('script');
script.textContent = "var extensionId = " + JSON.stringify(chrome.runtime.id);
(document.head||document.documentElement).appendChild(script);
script.parentNode.removeChild(script);
/* now inject your script */
或者,您可以添加一个不可见的DOM节点,该节点将包含ID作为内容或某个属性,并从注入的脚本中读取该ID。
像这样使用chrome.runtime.id
:
chrome.runtime.sendMessage(chrome.runtime.id, {
msg: data
},
function(response) {});
相关文章:
- 为什么我得到Chrome本机消息“;找不到指定的本机消息传递主机&”;
- 消息传递系统 jquery 发送jQuery514109241_1210239812938当我在消息中放入:))时
- 有没有一种简单的转换方法可以将chrome消息传递转换为safari消息传递语法
- 消息传递接收端
- 基本的谷歌chrome扩展消息传递不起作用
- 从动态生成的列表在PHP网页之间传递数据
- Chrome 扩展消息传递体系结构
- 为什么我无法将此消息传递到选项卡中运行的所有帧
- Chrome扩展消息传递:未发送响应
- 为什么在定义回调/侦听器函数(异步消息传递,port.on)后没有立即设置全局变量
- Chrome 消息传递.未捕获错误:连接到扩展时出错
- 在 MQTT 客户端中“未捕获的引用错误:未定义消息传递”
- 用于 SMS 消息传递的 window.location.href - 平台兼容性
- 谷歌打包应用原生消息传递
- 消息传递在 Chrome 19 中断开
- 获取频道中的消息数,而无需在 Twilio IP 消息传递中检索它们
- PHP 和 Jquery 之间的消息传递
- 加载从跨文档消息传递中作为事件数据获得的 pdf
- 如何动态地将chrome扩展ID发送到网页以进行消息传递
- Chrome扩展通过消息传递与网页进行通信