在 Chrome 中打开 url 并关闭 Safari 选项卡

Posted

技术标签:

【中文标题】在 Chrome 中打开 url 并关闭 Safari 选项卡【英文标题】:Open url in Chrome and close Safari tab 【发布时间】:2015-07-19 16:09:41 【问题描述】:

我在网上找到了这段代码:

javascript:location.href="googlechrome"+location.href.substring(4);

如果将该代码放在 Safari 的书签中,它将打开 Chrome 浏览器并加载用户在 Safari 中的当前网页。

但我想要的是当用户点击书签时,标签会在 Safari 中关闭,然后在 Chrome 中打开。有这种可能吗?

【问题讨论】:

你可以尝试类似javascript:location.href="googlechrome"+location.href.substring(4)+';close() 的方法(我还没有测试过)。 【参考方案1】:

您可以使用window.close() 关闭当前选项卡。

javascript:location.href="googlechrome"+location.href.substring(4); window.close();

但请注意,如果您的网址以https:// 而不是http:// 开头,那么您解析网址的方式将不起作用。

这是一个使用URI.js将当前URL中的协议替换为googlechrome的示例,这应该比仅使用location.href.substring(4)更可靠。

<!DOCTYPE html>
<html>

  <head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/URI.js/1.7.2/URI.min.js"></script>
    <script>
      function closeSafariAndOpenChrome()
      
        var chromeProtocol = 'googlechrome';
        var redirectedUrl = URI(location.href)
           .protocol(chromeProtocol);
        location.href = redirectedUrl;
        window.close();
      
    </script>

  </head>

  <body>
    <a href="javascript:closeSafariAndOpenChrome();">Click here to open chrome</a>
  </body>

</html>

【讨论】:

close() 应该可以工作,因为window 是默认的全局对象,所以window.close() 和只是close() 在功能上是等效的

以上是关于在 Chrome 中打开 url 并关闭 Safari 选项卡的主要内容,如果未能解决你的问题,请参考以下文章

Chrome 关闭后 Jsessionid cookie 不会过期

怎么用jQuery判断当前浏览器是chrome?

启动 Chrome 并等待它关闭 [重复]

如何在 Android 应用程序的对话框中打开 Chrome 自定义选项卡

如何打开Android版Chrome Beta隐藏的全屏模式

如何在 NUnit 测试框架上使用 selenium C# 在新的 Chrome 选项卡上打开 url