在 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 不会过期
如何在 Android 应用程序的对话框中打开 Chrome 自定义选项卡