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 文件引用也是可以的。