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

问题描述 投票:0回答:1

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

  • 使用像myTab.url = safari.extension.baseURI + 'page.html?' + params这样的查询参数,但目标页面似乎没有分配位置(location.search没有给出结果)。
  • 打开选项卡后myTab.page.dispatchMessage("url", "someUrl");,但消息永远不会到达新选项卡(我怀疑,它已经“通过”,当选项卡打开时)。

有什么建议?

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

© www.soinside.com 2019 - 2024. All rights reserved.