首页 新闻 会员 周边 捐助

$.post window.open失效 help me ,thanks

0
悬赏园豆:10 [已解决问题] 解决于 2015-01-22 12:00
1 $.post("index.php?url=<?php echo encrypt_url("a=admin&c=loginpost",@$key);?>",{uname:uname,upwd:upwd},function(data){
2 if(data=='true')
3 {
4 alert('a');
5 window.open("http://www.w3school.com.cn");
6 alert('b');
7 }

4,6行都会执行。就是不能跳转。help me 。thanks

无限REIZ的主页 无限REIZ | 初学一级 | 园豆:3
提问于:2015-01-22 10:32
< >
分享
最佳答案
0

用location.href=URL;

收获园豆:5
水晶途途 | 小虾三级 |园豆:1443 | 2015-01-22 10:48

thanks,我用的是window.location.我在试试你的。

无限REIZ | 园豆:3 (初学一级) | 2015-01-22 11:58

可以。谢谢。

无限REIZ | 园豆:3 (初学一级) | 2015-01-22 11:58
其他回答(3)
0

alert改为console.log试试

收获园豆:2
dudu | 园豆:30948 (高人七级) | 2015-01-22 10:34

谢谢园长。

支持(0) 反对(0) 无限REIZ | 园豆:3 (初学一级) | 2015-01-22 11:59
0

因为success的callback不是用户点击触发的了。 

 

window.open涉及到一个用户授权的问题, 因为window.open是臭名昭著的弹窗功能, 一天到晚的弹广告, 

后来就被浏览器给禁止了。 

但是网开一面, 给了个特例: 

如果是用户点击触发一段JavaScript来运行, 是可以允许弹出来的。 

否则不允许。 

 

而ajax和success的callback不是直接调用的关系, 是异步的callback, 所以授权的链在这里断了。 

没有什么好的解决方案。 

 

外加, window.open已经是上个世纪的功能了, 去jquery ui里找个弹窗的UI吧

里面放个iframe好了。 这样又不担心被弹窗管理程序给禁止掉。 因为只是个div而已。

 

此外有些浏览器很严格, 禁止任何形式的window.open, 这种情况下更早。 

 

所以放弃吧。

收获园豆:3
undefined | 园豆:898 (小虾三级) | 2015-01-22 10:48

谢谢。我应经弄好了

支持(0) 反对(0) 无限REIZ | 园豆:3 (初学一级) | 2015-01-22 11:57
0
五毛钱的饼 | 园豆:517 (小虾三级) | 2015-01-22 11:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册