window.open在Safari中不能打开
大部分现代的浏览器(Chrome/Firefox/IE 10+/Safari)都默认开启了阻止弹出窗口的策略,原因是window.open
被广告商滥用,严重影响用户的使用。这个阻止弹出窗口的操作,并不是直接封杀window.open()
,而是会根据用户的行为来判断这次window.open()
是否属于流氓操作。
这些事件 handler 里的,但如果是代码自己触发的就会被阻止。
那么,我们可以知道,在Safari中无法open新窗口,原因是Safari的安全机制将其阻挡。
那么,如果我们的需求是通过Ajax请求数据后,在成功的回调函数中open一个相关的窗口,显然正常手段是没法在Safari中搞定的。
那么,如何解决该问题呢?很简单,直走不行绕着走,绕过这个安全机制,也就是说在你调用Ajax之前,先打开这个窗口,然后在回调函数里面修改打开窗口的location,这样就可以解决。
示例代码:
var openWin = function(){ var winRef = window.open("url","_blank");$.ajax({ type: '', url: '', data: '',......success:function(json){winRef.location = "新的url";}});
};
不过,由于种种原因,window.open()
经常会被阻止掉,我们可以根据window.open()
的返回值来判断其执行情况,代码如下:
var winOpen = window.open("url",...);if(winOpen == null || typeof(winOpen) == 'undefined'){consoel.log("窗口无法打开,请检查浏览器!");
}else{consoel.log("窗口打开成功!");
}
这样的话,就可以在界面上比较清晰的告知用户是怎么回事了。
本文摘自:http://www.imooc.com/article/78876
转载于:https://www.cnblogs.com/handsome-jm/p/11341645.html
window.open在Safari中不能打开相关推荐
- window.open 在Safari中被拦截
在调移动支付问题的时候遇到过,用window.open打开一个微信支付链接,唤醒移动支付,在IOS下死活唤醒不了,是js代码冲突问题-是click事件IOS下不兼容问题-最后定位到window.ope ...
- safari支持java_BLOB URL无法在Safari中使用
我使用D3来生成图形并想要将其导出到图像,这在除Safari之外的所有浏览器中都能正常工作 . 该代码生成一个D3 SVG,用于BLOB,用作图像,将其添加到可导出的画布中 . var blob = ...
- Swift:在Safari中打开App
打开之前会发生什么呢,先看看这个图: 我这里只是简单模拟了一下.当你输入一个特殊的"url"之后,Safari弹出一个提示,问你是否继续打开这个App.如果你这个时候confirm ...
- 中无法打开源文件_Safari浏览器无法打开,如何解决Safari在Big Sur中崩溃的情况...
macOs Big Sur的beta版本比最新版本的macOS更长,已于6月发布给开发人员.但是,这并不意味着最终版本完全没有问题.从来没有软件.有太多的变数和机会让错误潜入. 某些用户在Big Su ...
- 如何在iPhone和iPad上的Safari中在后台打开链接
Safari lets you open links in a new tab on iPhone or iPad, but it immediately switches to that new t ...
- window在文件管理器中打开命令行窗口
window在文件管理器中打开命令行窗口 操作:shift+鼠标右键w 转载于:https://www.cnblogs.com/alisonGavin/p/7506955.html
- Safari浏览器无法打开,如何解决Safari在Big Sur中崩溃的情况
macOs Big Sur的beta版本比最新版本的macOS更长,已于6月发布给开发人员.但是,这并不意味着最终版本完全没有问题.从来没有软件.有太多的变数和机会让错误潜入. 某些用户在Big Su ...
- chrome和safari_私人浏览器-如何在Chrome和Safari中使用隐身模式
chrome和safari Private browsing, or "incognito mode" has become a popular way to surf the w ...
- safari中判断app是否安装
转载自http://m.blog.csdn.net/blog/wangyx810328/9345817 最近遇到一个需求,需要在safari中判断用户在设备上是否安装了某App,如果安装了则自动启动此 ...
最新文章
- 张玉萍:数据科学的“融”,是学术中的“锦上添花” | 优秀毕业生专访
- 深度学习与芯片之间的羁绊往事
- C# TeeChart的一些用法
- 安装程序无法创建新的系统分区也无法定位现有系统分区_如何拥有一个 Windows 10 和 Debian 10 的双系统...
- 区块链BaaS云服务(14)华大BGI区块链“概论“
- 从单体到混乱的微服务,阿里云托管式服务网格是如何诞生的?
- 音频处理十:( mp3 与wav 格式的相互转换)
- 小米回应造车传闻;饿了么就春节“套路”骑手活动致歉;Go 1.16 正式发布 | 极客头条...
- Java项目性能监控和调优工具-Javamelody
- FlashDevelop 遇到的Process not responding 问题
- Android中的IPC方式AIDL
- [论文评析]人体脉搏波速与血压之间关系探索新突破
- FreeBSD安装MySQL
- Python3.7安装教程
- 答题微信小程序实现(5):大功告成,整个模板,题库导入/切换/积分/选择对错判断/闯关成功
- centos 20T硬盘(超过16T)分区和格式化
- 解决PySide2的This application failed to start because no Qt platform plugin could be initialized问题
- python提取pdf发票信息_python读取pdf(发票)
- pytorch多卡并行模型的保存与载入
- python中forward的参数_ip_forward参数对Linux内核转发影响分析