http://v.jkwifi.com/?authType=1&pc=true
这是我写的一个测试网址,这个页面就是一个跳转过来就跳到QQ登录页面的中间页面
现在问题是:
疑点1:刚进入页面的时候调用loginQ()方法 (查看源代码可见) 就是一个弹窗,现在的浏览器基本遇见弹窗当广告处理,这效果完全让人难以接受呀
疑点2:但是点击页面上的a标签触发单击事件,同样调用loginQ()但是效果却是新建一个页面
我就想问,为什么都是调用同一个方法,出来的结果却这么不一样,一个是弹窗,一个是新建页面
请JS方面知道这方面的朋友告知一下,谢谢,问他们腾讯技术支持,他表示JS他压力很大,我就不劳烦他了,回复速度慢不说,质量还很差,还是博客园的牛人多
这个是大多数浏览器都有的策略。为了防止一些流氓网站的流氓弹窗广告,所以不允许用代码打开新的窗口,否则浏览器就会提示拦截了弹出窗口,只能通过用户鼠标操作来打开,意思是用户主动操作打开的。模拟的点击打开窗口事件也不行
这位朋友说的和我实践的一样,我也用过一切模拟点击,模拟调用,可就是不行,这个难道就没有解决办法了吗
@sevennight: 这个你就要反思一下自己的逻辑有没有问题。本来登录就是要用户点击的,你要么采用DUDU的方案,要么就是老老实实地放一个链接让用户点击。
你如果有什么不可告人的目的非要在一个页面弹出登录框的话,那就不能怪浏览器下毒手了。
@sevennight: 你的功能是打开这个页面的时候判断是用QQ登录还是微博登录的吧?既然前台代码不行,那就用后台的试试。在后台判断哪种登录方式,再做跳转。
@咦?: 多谢了,反复测试,应该是浏览器策略实在不能这么做,谢了
这个还真没注意过,我们用的就是a 标签触发,是新建一个页面打开的。去研究一下你说的那种情况。
浏览器策略这条说的在理。
正常应该是这样的
1. 原始页面Home.htm 点击
2. QQ登录页面
浏览器是这么判断的,如果你非要经过自己的页面一下,那就只能在页面里写Location.redirect。
1. 原始页面Home.htm 点击
2. 中转页面 location.Redirect 到
3. QQ登录页面