iOS 上的Safari 浏览器中有一个“发送到屏幕”的功能,用户可以把网站的URL以一个快捷方式的形式添加到主屏幕,展示形式跟原生的应用一样并最大限度地模拟本地APP的效果,这就是 Web APP。 但是,通过主屏幕上点击进入Web APP 形式的网页时,点击任何一个链接就会跳转到Safari 浏览器并新建一标签页打开所属链接,这就不是我们想要的效果了。

解决方案

[cce_js]
<script type="text/javascript">
//iOS Web APP中点击链接跳转到Safari 浏览器新标签页的问题
if(("standalone" in window.navigator) && window.navigator.standalone){
var noddy, remotes = false;
document.addEventListener('click', function(event) {
noddy = event.target;
while(noddy.nodeName !== "A" && noddy.nodeName !== "HTML") {
noddy = noddy.parentNode;
}
if('href' in noddy && noddy.href.indexOf('http') !== -1 && (noddy.href.indexOf(document.location.host) !== -1 || remotes))
{
event.preventDefault();
document.location.href = noddy.href;
}
},false);
}
</script>
[/cce_js]

建议将代码放到</head>标签前,当然,另外存为一个js 文件引用也是可以的。