Safari扩展,打开带HTML页面的新标签,传递参数

时间:2013-09-17 18:35:39

标签: javascript safari safari-extension

在我的扩展程序中,我想在单击工具栏按钮(工作)时打开一个新选项卡,在选项卡(工作)上显示带有JavaScript的静态HTML页面,并将数据(来自原始页面的URL)传递到新选项卡(不起作用)。我试过了:

  • 使用myTab.url = safari.extension.baseURI + 'page.html?' + params等查询参数,但目标网页似乎没有分配位置(location.search没有结果)。

  • 打开选项卡后
  • myTab.page.dispatchMessage("url", "someUrl");,但邮件永远不会到达新选项卡(我怀疑,当选项卡打开时,它已经“通过”)。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我在打开的页面中解析了 document.URL 以获取特定参数,它对我有用。 E.g。

function __onLoad()
{
    var p = $.url(document.URL);
    alert(p.param("url"));
}

错过消息的两个可能原因:

  • 您未在网页上添加消息事件监听器
  • 您在添加事件侦听器之前调用 dispatchMessage

https://developer.apple.com/library/archive/documentation/Tools/Conceptual/SafariExtensionGuide/MessagesandProxies/MessagesandProxies.html

检查Safari开发文档