javascript实现阻止iOS APP中的链接打开Safari浏览器

上次根据网上的教程给自己的网站弄了一个Web APP,但是给用户的感觉却十分糟糕。

问题说明:

怎么了?原来是打开WEB APP后在主页上随意打开连接,就会自作主张地打开Safari浏览器。原来好好的伪装和心情就全被破坏掉了。这该如何是好?原来解决方法十分简单。仅仅加入这些代码就好了。实验测试在本人的 iPhone (iOS 7.1)和iPod (iOS 6.1.4)上测试通过,根据原作者的叙述,最新的 iOS 7.0.4(iPhone 与 iPad)测试通过,代码应该兼容性不错,在这里分享:

问题解决:

代码如下:

<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>

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

相关推荐