Javascript Safari扩展:将窗口对象从注入脚本传递到全局页面
是否有方法将窗口对象从inject脚本传递到global.html页面 我试图将窗口作为对象的一部分传递到全局页面,从“加载”侦听器函数,它在尝试分派消息时抛出类型错误 这是代码Javascript Safari扩展:将窗口对象从注入脚本传递到全局页面,javascript,safari,safari-extension,Javascript,Safari,Safari Extension,是否有方法将窗口对象从inject脚本传递到global.html页面 我试图将窗口作为对象的一部分传递到全局页面,从“加载”侦听器函数,它在尝试分派消息时抛出类型错误 这是代码 window.addEventListener("load", onDocLoad); function onDocLoad() { var msg = new Object(); msg.url = window.location.href; // this all works ....
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);
}
消息分派工作和其他数据可以无错误地传递,窗口对象除外。
如何做到这一点?您不能传递像HTMLWindow这样的对象,因为文档中说: 消息数据不限于单一数据类型;它可以是布尔值、数字、字符串、数组、RegExp对象,也可以是符合W3C标准的任何对象,用于安全传递结构化克隆数据。在命令不需要数据的情况下,它也可以为null、未定义或留空
您不能传递像HTMLWindow这样的对象,因为文档中说: 消息数据不限于单一数据类型;它可以是布尔值、数字、字符串、数组、RegExp对象,也可以是符合W3C标准的任何对象,用于安全传递结构化克隆数据。在命令不需要数据的情况下,它也可以为null、未定义或留空