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 相关文章推荐
IE6 fixed的完美解决方案
Mar 31 Javascript
js使用循环清空某个div中的input标签值
Sep 29 Javascript
js实现仿百度风云榜可重复多次调用的TAB切换选项卡效果
Aug 31 Javascript
逐一介绍Jquery data()、Jquery stop()、jquery delay()函数(详)
Nov 04 Javascript
jQuery实现放大镜效果实例代码
Mar 17 Javascript
JS实现可编辑的后台管理菜单功能【附demo源码下载】
Sep 13 Javascript
vue2.0全局组件之pdf详解
Jun 26 Javascript
JavaScript同源策略和跨域访问实例详解
Apr 03 Javascript
JavaScript 2018 中即将迎来的新功能
Sep 21 Javascript
JavaScript设计模式之观察者模式与发布订阅模式详解
May 07 Javascript
Node.js API详解之 assert模块用法实例分析
May 26 Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
Sep 18 Javascript
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
PHP学习之PHP运算符
2006/10/09 PHP
laravel自定义分页效果
2017/07/23 PHP
jQuery技巧总结
2011/01/01 Javascript
ExtJS4 Grid改变单元格背景颜色及Column render学习
2013/02/06 Javascript
node.js入门教程迷你书、node.js入门web应用开发完全示例
2014/04/06 Javascript
jQuery淡入淡出元素让其效果更为生动
2014/09/01 Javascript
jQuery实现渐变弹出层和弹出菜单的方法
2015/02/20 Javascript
javascript手风琴下拉菜单实现代码
2015/11/12 Javascript
JavaScript修改作用域外变量的方法
2016/03/25 Javascript
node.js学习之交互式解释器REPL详解
2016/12/08 Javascript
简单实现js无缝滚动效果
2017/02/05 Javascript
Js自动截取字符串长度,添加省略号(……)的实现方法
2017/03/06 Javascript
Bootstrap笔记之缩略图、警告框实例详解
2017/03/09 Javascript
JS简单实现查看文档创建日期、修改日期和文档大小的方法示例
2018/04/08 Javascript
详解React中传入组件的props改变时更新组件的几种实现方法
2018/09/13 Javascript
Angular7中创建组件/自定义指令/管道的方法实例详解
2019/04/02 Javascript
JS实现躲避粒子小游戏
2020/06/18 Javascript
JS绘图Flot应用图形绘制异常解决方案
2020/10/16 Javascript
python通过装饰器检查函数参数数据类型的方法
2015/03/13 Python
在Python下进行UDP网络编程的教程
2015/04/29 Python
Python素数检测的方法
2015/05/11 Python
Python2.x版本中cmp()方法的使用教程
2015/05/14 Python
老生常谈python函数参数的区别(必看篇)
2017/05/29 Python
Python+OpenCV图片局部区域像素值处理详解
2019/01/23 Python
Python实现的栈、队列、文件目录遍历操作示例
2019/05/06 Python
pyqt 实现在Widgets中显示图片和文字的方法
2019/06/13 Python
python 多线程死锁问题的解决方案
2020/08/25 Python
Python制作运行进度条的实现效果(代码运行不无聊)
2021/02/24 Python
计算机毕业大学生推荐信
2013/12/01 职场文书
党员个人对照检查材料范文
2014/09/24 职场文书
写作之关于描写老人的好段摘抄
2019/11/14 职场文书
python3 实现mysql数据库连接池的示例代码
2021/04/17 Python
pandas取dataframe特定行列的实现方法
2021/05/24 Python
MySQL优化常用的19种有效方法(推荐!)
2022/03/17 MySQL
动画「进击的巨人」第86话播出感谢绘公开
2022/03/21 日漫
MySQL分区路径子分区再分区
2022/04/13 MySQL