Safari扩展:将窗口对象从注入脚本传递到全局页面

时间:2013-03-04 05:15:06

标签: javascript safari safari-extension

有没有办法将窗口对象从注入脚本传递到global.html页面,

我试图将窗口作为对象的一部分传递给全局页面,从“加载”侦听器函数,它在尝试分派消息时抛出类型错误。

这是代码。

window.addEventListener("load", onDocLoad);

function onDocLoad()
{
    var msg = new Object();

    msg.url = window.location.href; // this all works 
    .....
    msg.win = window; // With this it throws type error on line safari.self.tab.dispatchMessage("XXX",msg);
    safari.self.tab.dispatchMessage("XXX",msg);  
}

可以传递消息调度工作和其他数据,而不会出现对象的错误。 我该怎么做?

1 个答案:

答案 0 :(得分:1)

您无法传递HTMLWindow等对象,因为文档说:

  

消息数据不限于单一数据类型;它可以是布尔值,数字,字符串,数组,RegExp对象,或任何符合W3C标准的安全传递结构化克隆数据的东西。在命令不需要数据的情况下,它也可以为null,未定义或留空。