首页 新闻 会员 周边 捐助

JS疑问,腾讯技术支持表示让自己解决

0
悬赏园豆:50 [已解决问题] 解决于 2014-09-03 12:25

http://v.jkwifi.com/?authType=1&pc=true

这是我写的一个测试网址,这个页面就是一个跳转过来就跳到QQ登录页面的中间页面

 

现在问题是:

疑点1:刚进入页面的时候调用loginQ()方法 (查看源代码可见) 就是一个弹窗,现在的浏览器基本遇见弹窗当广告处理,这效果完全让人难以接受呀

疑点2:但是点击页面上的a标签触发单击事件,同样调用loginQ()但是效果却是新建一个页面

我就想问,为什么都是调用同一个方法,出来的结果却这么不一样,一个是弹窗,一个是新建页面

请JS方面知道这方面的朋友告知一下,谢谢,问他们腾讯技术支持,他表示JS他压力很大,我就不劳烦他了,回复速度慢不说,质量还很差,还是博客园的牛人多

sevennight的主页 sevennight | 初学一级 | 园豆:114
提问于:2014-09-03 10:58
< >
分享
最佳答案
0

这个是大多数浏览器都有的策略。为了防止一些流氓网站的流氓弹窗广告,所以不允许用代码打开新的窗口,否则浏览器就会提示拦截了弹出窗口,只能通过用户鼠标操作来打开,意思是用户主动操作打开的。模拟的点击打开窗口事件也不行

收获园豆:30
龙卷风摧毁停车场! | 菜鸟二级 |园豆:210 | 2014-09-03 11:48

这位朋友说的和我实践的一样,我也用过一切模拟点击,模拟调用,可就是不行,这个难道就没有解决办法了吗

sevennight | 园豆:114 (初学一级) | 2014-09-03 11:53

@sevennight: 这个你就要反思一下自己的逻辑有没有问题。本来登录就是要用户点击的,你要么采用DUDU的方案,要么就是老老实实地放一个链接让用户点击。

你如果有什么不可告人的目的非要在一个页面弹出登录框的话,那就不能怪浏览器下毒手了。

爱编程的大叔 | 园豆:30844 (高人七级) | 2014-09-03 11:56

@sevennight: 你的功能是打开这个页面的时候判断是用QQ登录还是微博登录的吧?既然前台代码不行,那就用后台的试试。在后台判断哪种登录方式,再做跳转。

龙卷风摧毁停车场! | 园豆:210 (菜鸟二级) | 2014-09-03 11:57

@咦?: 多谢了,反复测试,应该是浏览器策略实在不能这么做,谢了

sevennight | 园豆:114 (初学一级) | 2014-09-03 12:24
其他回答(3)
0

这个还真没注意过,我们用的就是a 标签触发,是新建一个页面打开的。去研究一下你说的那种情况。

晓菜鸟 | 园豆:2594 (老鸟四级) | 2014-09-03 11:32
0

推荐园子里的一篇参考博文:一次解决页面特效问题的排查记录

收获园豆:10
dudu | 园豆:29762 (高人七级) | 2014-09-03 11:47
0

浏览器策略这条说的在理。

正常应该是这样的

1. 原始页面Home.htm  点击

2. QQ登录页面

浏览器是这么判断的,如果你非要经过自己的页面一下,那就只能在页面里写Location.redirect。

1. 原始页面Home.htm 点击

2. 中转页面 location.Redirect 到

3. QQ登录页面

收获园豆:10
爱编程的大叔 | 园豆:30844 (高人七级) | 2014-09-03 12:01
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册