解决 safari window.open 无法实现的问题
来源:互联网 发布:淘宝怎么设置关键词 编辑:程序博客网 时间:2024/05/16 09:27
转载至:http://blog.csdn.net/wgrzhuaq/article/details/7821725
经实际测验,有效,谢谢博主。
解决 safari window.open 无法实现的问题
先说下问题是什么吧: safari 中没办法在回调函数里面执行window.open, 原因是safari的安全机制将其阻挡了(具体的原因可能需要你自己深入研究)..
那么如果你有这样的需求(或者类似的),通过ajax 发送请求到服务器端,等待请求响应成功之后,根据从服务器端响应得到的数据,打开一个窗口显示给用户,在safari上是没办法直接一个window.open搞定的( 浏览器没问题, IE, firefox, chrome).
那么window.open 在safari 中 只有当用户触发事件之后才能被调用成功的,怎么解决这个问题呢? 很简单, 绕过这个该死的安全机制,在你调用ajax请求之前,打开这个窗口, 然后在回调函数里面修改新打开窗口的location, 这样就解决了。这个解决方案是我前两天从国外一位兄台的博客上找到的,相信国内的某些兄弟可能会用到,所以在此发出来,希望能对你有所帮助。
简单示例代码如下(假设应用jquery):
var sel = pg.find('select option:selected');
var id = sel.attr("id");
var name = sel.html();
var winRef = window.open("", "_blank");//打开一个新的页面
App.post('accountSet/getServerName.do',{id:id},function(data){
var ro = mac.eval(data);
if(ro.success){
function loc(){
var ll = 'http://'+ro.data.info+'.teenydata.com/'+name+'/index.jsp';
winRef.location = ll;//改变页面的 location
}
setTimeout(loc(),800);//这个等待很重要,如果不等待的话将无法实现
}
})
});
0 0
- 解决 safari window.open 无法实现的问题
- 解决 safari window.open 无法实现的问题
- 解决 safari window.open 无法实现的问题
- 解决 safari window.open 无法实现的问题
- window.open在Safari中的问题
- window.open()的问题
- 无法阻止的window.open().....
- 无法阻止的window.open().....
- 解决ie的window.open的referer丢失问题。
- 解决ie的window.open的referer丢失问题。
- 解决ie的window.open的referer丢失问题。
- 解决window.open中返回[object]的问题
- 解决window.open 会被IE阻止的问题
- 解决window.open被浏览器拦截的问题
- 解决集群开启Kerberos之后 storm UI在本地无法打开的问题(mac os+safari)
- 解决弹出的窗口window.open会被浏览器阻止的问题(自定义open方法)
- sitemesh的window.open问题
- 关于window.open的问题
- Redis入门
- 微服务实战(二):使用API Gateway
- 欢迎使用CSDN-markdown编辑器
- debug
- mybatis中的#{}和${}的区别?
- 解决 safari window.open 无法实现的问题
- 世界上最强大的力量
- 微服务实战(三):深入微服务架构的进程间通信
- eclipse下创建ssm+MySQL+maven多模块项目
- C++ STL--stack/queue 的使用方法
- git--push失败
- JDBC连接数据库
- 扫描项目目录文件并打印
- 数据库索引相关