我希望能够从全局页面向其中一个选项卡中的IFRAME中运行的内容脚本发送消息。我发现Safari扩展API可能存在一个不允许这样做的设计疏忽。(与comprehensive不同,comprehensive对扩展的各个组件之间的消息传递有更全面的支持)。
基本上,我有一个注入到所有帧及其IFRAMEs的injected.js。在injected.js中,我有以下从全局页面捕获消息的方法:
safari.self.addEventListener("message", function(msg) {
/* do something according to the msg
我正在编写一个扩展,我遇到了一个问题:我无法将数据从扩展菜单发送到content.js。在扩展菜单中,我有几个直觉,在填写并单击按钮后,我写下它们的值,并希望将它们发送到content.js,在那里这些数据将用于在html中实现,但由于某些原因,数据不会发送。
document.getElementById('btn').onclick = function() {
var first = document.getElementById('first').value;
var second = document.getElementById('
我在谷歌铬分机里工作。我的popup.js中有一个函数,用于填充表update_table。我想从发送重要数据的background.js中调用这个函数。问题是没有定义update_table on background.js,如果我将代码复制到该文件中,不要在popup.html上更新表。
popup.js
function update_table(content, morecontent){
if (!document.getElementsByTagName) return;
tabBody=document.getElementsByTagName("tbod
是否可以在不使用后台页面的情况下直接从内容脚本向浏览器操作发送消息?下面是我的代码的简化版本。内容脚本似乎工作正常,但我在控制台中得到以下错误:
Error: Error: Could not establish connection. Receiving end does not exist.
我假设这是因为浏览器操作并不总是活动的。但我不想使用后台页面,因为我不希望脚本运行时不断占用内存。我希望将消息直接发送到浏览器操作,并显示弹出窗口,有点像browserAction.onClicked显示弹出窗口。这是我正在尝试构建的第一个扩展,所以尝试弄清楚一些事情。谢谢
manifest.json