如何在带有扩展程序的 Safari 中单击按钮打开新标签页?

How to open new tab with Button click in Safari with extension?

我在使用我的扩展程序在 Safari 浏览器中打开新标签页时遇到问题。 使用我添加的扩展生成器 bar.html:

<html>
<body>
  <form id="myForm">
    <input type="button" value="Button1" onclick="window.open('http://www.google.com')"/>
    <button onclick='window.open("https://www.google.com", "_blank");'>Button2</button>
  </form>
</body>
</html>

Button1Button2 都不会在新选项卡中打开 'google.com',window 也不会。如果我将它们放在上面的表格中,然后单击 Button2 它将在当前选项卡中打开我的 bar.html,如果我单击 Button1Button2 它将在我的当前选项卡中打开 'google.com'。

您尝试过使用 target_blank 吗?

https://www.w3schools.com/tags/att_a_target.asp

我在 Apple Dev 库中找到了这个,它指出“标准 window.open() 方法不能用于打开新选项卡和 window 从扩展栏。相反,扩展栏可以访问 SafariApplication、SafariBrowserWindow 和 SafariBrowserTab 类,它们允许您打开、关闭、激活和操作 windows 和选项卡。"

因此,通过使用带有 safari.self.browserWindow.openTab 的函数,我能够在新选项卡中打开我的 link。

<!DOCTYPE HTML>
<html>
    <head>
        <title>Safari Developer Reference</title>
        <button onclick="openInTab('http://www.google.com');">Click me</button>
        <script type="text/javascript">
            function openInTab(source){
                var newTab=safari.self.browserWindow.openTab();
                newTab.url=source;
            }
        </script>
    </head>
    <body style="color:#C02020;background:#C0C0C0;">
        <a href="javascript:openInTab('http://www.google.com');"> Google </a>
    </body>