4

我正在构建一个 chrome 扩展,将内容脚本添加到站点(我们称它为主机)。内容脚本在主机中创建了一个 iframe,它指向我的域(跨域)。

我可以通过 parent.postMessage() 从 iframe 向主机发送消息。但是,收到的“消息”事件不包含阻止我将消息传回给孩子的“源”属性。

更新 我正在寻找客户端解决方案或对此行为的解释。

4

2 回答 2

2

你必须以困难的方式去做。

执行 iframe 时,在 url 中发送一个唯一的安装 ID。

例如 http://www.trackingdomain.tld/trackingscript.php?uid=38736238

然后让您的脚本每隔 1000 毫秒从您的域中使用相同的 uid 提取一个 JSON 脚本回复,以获取返回的消息。

您也可以使用 json 来发送消息。

但是这个解决方案意味着你将被迫使用服务器端脚本。

于 2012-11-15T15:50:07.463 回答
0

window扩展中可用的沙盒对象似乎存在问题。

一个快速的解决方法是通过元素将 javascript 代码直接注入 DOM,src而不是从扩展中运行它。这样您就可以处理常规的窗口对象。

你可以在这个问题的答案中看到一个例子

于 2012-11-16T00:08:23.577 回答