Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Safari 12[Safari应用程序扩展]中使用JavaScript打开新选项卡_Javascript_Safari_Safari Extension_Safari App Extension - Fatal编程技术网

在Safari 12[Safari应用程序扩展]中使用JavaScript打开新选项卡

在Safari 12[Safari应用程序扩展]中使用JavaScript打开新选项卡,javascript,safari,safari-extension,safari-app-extension,Javascript,Safari,Safari Extension,Safari App Extension,我有一个扩展,我想在扩展的JavaScript部分打开一个新选项卡。在将其迁移到Safari应用程序扩展之前,我可以 window.open(url, "_blank"); 但是,当我在Safari 12中作为应用程序扩展运行它时,它会将当前链接添加到阅读列表(?!) 当我在控制台中运行上面的代码时,它会打开url的一个新选项卡,但我必须在Safari首选项中启用弹出窗口。我在苹果非常糟糕的文档中找不到任何东西 这在“客户端”上是可能的,还是我必须在Swift代码中处理这一点?如果您想使用Sa

我有一个扩展,我想在扩展的JavaScript部分打开一个新选项卡。在将其迁移到Safari应用程序扩展之前,我可以

window.open(url, "_blank");
但是,当我在Safari 12中作为应用程序扩展运行它时,它会将当前链接添加到阅读列表(?!)

当我在控制台中运行上面的代码时,它会打开
url
的一个新选项卡,但我必须在Safari首选项中启用弹出窗口。我在苹果非常糟糕的文档中找不到任何东西


这在“客户端”上是可能的,还是我必须在Swift代码中处理这一点?

如果您想使用Safari应用程序扩展打开一个新选项卡,您需要在本机代码中完成

您可以通过获取活动窗口,然后在该窗口上调用
openTab()
方法来实现这一点

下面是实现这一点的代码段:

let myUrl = URL(string: "https://google.com")


// This grabs the active window.
SFSafariApplication.getActiveWindow { (activeWindow) in

        // Request a new tab on the active window, with the URL we want.
        activeWindow?.openTab(with: myUrl, makeActiveIfPossible: true, completionHandler: {_ in
            // Perform some action here after the page loads if you'd like.
        })
    }

我不知道我可以访问<代码> SFFAARIApvest<代码>,所以我甚至没有考虑过这个问题。这帮我解决了很多头疼的问题,非常感谢!您知道是否可以定义新选项卡的位置吗?理想情况下,我希望它在当前选项卡旁边,因为我打开的页面与当前的页面相关,但是当前新的选项卡出现在最右边的所有打开选项卡的末尾。