You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Safari扩展中用JavaScript打开新标签?语法报错如何解决?

问题原因&解决方法
  • 直接触发语法报错的根因:你混用了Swift语法和JavaScript语法
    代码里let myUrl = URL(string: "https://google.com")是Swift创建URL对象的写法,JavaScript不支持Swift的参数标签语法,解析到string:里的冒号时无法识别,就抛出了你看到的Unexpected token ':'错误。
    JavaScript中创建URL对象的正确写法是:
    let myUrl = new URL("https://google.com")
    
  • 第二个隐藏问题:你调用的SFSafariApplication系列API是原生Safari App Extension的Swift/OC专属API,无法直接在JS代码中运行。如果你开发的是基于WebExtensions标准的Safari扩展,应该使用通用的WebExtensions标签API实现新标签打开,完整修正代码如下:
function openTab() {
    let myUrl = new URL("https://google.com")
    // 调用WebExtensions标准API创建新标签,Safari扩展原生支持该API
    browser.tabs.create({
        url: myUrl.href,
        active: true
    })
}

openTab();

如果你开发的是包含原生逻辑的Safari App Extension,这段打开新标签的逻辑需要移到Swift代码部分实现,不能写在JS脚本中。

内容的提问来源于stack exchange,提问作者Ajy_Chikn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 08:45:03