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


Posted in Javascript onJune 12, 2014

上次根据网上的教程给自己的网站弄了一个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 文件引用也是可以的。
Javascript 相关文章推荐
js下弹出窗口的变通
Apr 18 Javascript
分享JavaScript获取网页关闭与取消关闭的事件
Dec 13 Javascript
jQuery解析XML与传统JavaScript方法的差别实例分析
Mar 05 Javascript
详解Bootstrap插件
Apr 25 Javascript
js删除Array数组中指定元素的两种方法
Aug 03 Javascript
Ajax实现不刷新取最新商品
Mar 01 Javascript
详谈js模块化规范
Jul 07 Javascript
微信小程序开发之IOS和Android兼容的问题
Sep 26 Javascript
Node.js npm命令运行node.js脚本的方法
Oct 10 Javascript
Vue插值、表达式、分隔符、指令知识小结
Oct 12 Javascript
Vue快速实现通用表单验证的方法
Feb 24 Javascript
详解vue中v-for的key唯一性
May 15 Vue.js
jQuery实现复选框全选/取消全选/反选及获得选择的值
Jun 12 #Javascript
深入理解javascript中的立即执行函数(function(){…})()
Jun 12 #Javascript
Javascript封装DOMContentLoaded事件实例
Jun 12 #Javascript
自己封装的javascript事件队列函数版
Jun 12 #Javascript
jquery动态添加删除一行数据示例
Jun 12 #Javascript
checkbox勾选判断代码分析
Jun 11 #Javascript
百度判断手机终端并自动跳转js代码及使用实例
Jun 11 #Javascript
You might like
苏联队长,苏联超人蝙蝠侠,这些登场的“山寨”英雄真的很严肃
2020/04/09 欧美动漫
咖啡的传说和历史
2021/03/03 新手入门
Laravel框架表单验证详解
2014/09/04 PHP
PHP中单例模式的使用场景与使用方法讲解
2019/03/18 PHP
用Greasemonkey 脚本收藏网站会员信息到本地
2009/10/26 Javascript
JQuery中$之选择器用法介绍
2011/04/05 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2012/01/03 Javascript
javascript 使td内容不换行不撑开
2012/11/29 Javascript
JavaScript动态加载样式表的方法
2015/03/21 Javascript
javascript中利用柯里化函数实现bind方法【推荐】
2016/04/29 Javascript
深入理解jquery跨域请求方法
2016/05/18 Javascript
浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题
2016/10/10 Javascript
表单input项使用label同时引用Bootstrap库导致input点击效果区增大问题
2016/10/11 Javascript
JavaScript中数据类型转换总结
2016/12/25 Javascript
代码详解javascript模块加载器
2018/03/04 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
JavaScript数组类型Array相关的属性与方法详解
2020/09/08 Javascript
[01:18]PWL开团时刻DAY10——一拳超人
2020/11/11 DOTA
用Python实现换行符转换的脚本的教程
2015/04/16 Python
Django 前后台的数据传递的方法
2017/08/08 Python
tensorflow获取变量维度信息
2018/03/10 Python
python读取文本中数据并转化为DataFrame的实例
2018/04/10 Python
使用Py2Exe for Python3创建自己的exe程序示例
2018/10/31 Python
Python终端输出彩色字符方法详解
2020/02/11 Python
python实现拼图小游戏
2020/02/22 Python
Python类型转换的魔术方法详解
2020/12/23 Python
关于canvas.toDataURL 在iOS运行失败的问题解决
2020/09/16 HTML / CSS
Fossil加拿大官网:化石手表、手袋、首饰及配饰
2019/04/23 全球购物
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
2013/03/30 面试题
副科竞争上岗演讲稿
2014/05/12 职场文书
生日宴会策划方案
2014/06/03 职场文书
教育局党的群众路线教育实践活动整改方案
2014/09/20 职场文书
2019新学期家长会工作计划
2019/08/21 职场文书
Python编写可视化界面的全过程(Python+PyCharm+PyQt)
2021/05/17 Python
vue @click.native 绑定原生点击事件
2022/04/22 Vue.js
ubuntu如何搭建vsftpd服务器
2022/12/24 Servers