标签: ios

  • 阻止iOS Web APP中点击链接跳转到Safari 浏览器新标签页

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