众所周知,我们web开发人员痛恨IE浏览器,因为IE不支持标准,标准外的默认行为又和其他浏览器经常不一致:
在IE中用javascript做跳转,比如用window.location.href = “http://www.google.com”; google无法取到浏览器请求的HTTP referrer,因为IE清空了document.referrer
而其他主流浏览器Firefox和Chrome都会保留referrer,这意味着IE又要享受“部长级”特殊待遇了:
1 | if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ |
2 | var referLink = document.createElement('a'); |
3 | referLink.href = url; |
4 | document.body.appendChild(referLink); |
5 | referLink.click(); |
6 | } else { |
7 | location.href = url; |
8 | } |
这样的原理就是给IE浏览器的页面偷偷加了个链接,然后自动点这个链接,于是referrer就能保留了,这个办法是一个国外论坛上看到的,想不起哪儿了,不过感谢作者。
IE浏览器Referrer解决方案
本文介绍了一种解决Internet Explorer浏览器不保留referrer的问题的方法。通过在页面中创建并自动点击隐藏的链接来确保referrer信息能够被目标网站正确获取,从而避免了IE特有的兼容性问题。
1438

被折叠的 条评论
为什么被折叠?



