0

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

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

  • myTab.page.dispatchMessage("url", "someUrl");打开标签后,但消息永远不会到达新标签(我怀疑,当标签打开时,它已经“通过”了)。

有什么建议么?

4

1 回答 1

1

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

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 开发文档

于 2013-09-18T07:08:51.493 回答