在safari下面javascript的location.href()不起作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在safari下面javascript的location.href()不起作用相关的知识,希望对你有一定的参考价值。
在设置里往下拉,进入safari条目,进入“高级”,里面有个javascript,打开开关即可。 参考技术A var url = location;alert(url);
location = "http://www.baidu.com/"; //跳转到百度
在 Chrome 中打开 url 并关闭 Safari 选项卡
【中文标题】在 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()
在功能上是等效的以上是关于在safari下面javascript的location.href()不起作用的主要内容,如果未能解决你的问题,请参考以下文章
在 Chrome 中打开 url 并关闭 Safari 选项卡
关闭标签页Chrome / Safari浏览器-Javascript
如果在 iOS 9+ 上的 Safari 中手机上安装了应用程序,如何从 Javascript 检查?