JavaScript中的document.referrer在各种浏览器测试结果
主要介绍了JavaScript中的document.referrer在各种浏览器测试结果,包括在多种情况下每个浏览器能否用document.referrer取到值,非常珍贵的测试结果,需要的朋友可以参考下 文档引用(`document.referrer`)是JavaScript中用于获取当前页面加载前的源页面URL的一个属性。这个属性对于跟踪用户导航路径,分析流量来源等用途非常重要。然而,`document.referrer`的行为在不同浏览器之间可能存在差异,尤其是在涉及到跨协议(如从HTTPS跳转到HTTP)或者特定的用户交互操作时。 当用户从一个HTTPS页面跳转到HTTP页面时,由于安全原因,`document.referrer`通常会被设为空。这是因为HTTPS协议提供了加密和身份验证,为了保护用户的隐私,浏览器不会暴露用户之前访问过的HTTPS页面。这是一个浏览器的安全策略,旨在防止恶意网站追踪用户的浏览历史。 除此之外,不同的浏览器对`document.referrer`的处理方式也有所不同。例如: - 在Safari中,如果通过右键点击链接并在新标签页中打开页面,`document.referrer`将为空。 - Internet Explorer (IE)的某些版本,如IE6到IE8,修改`location.href`或使用`window.open`打开页面时,`document.referrer`也会丢失。不过,IE9在使用`location.href`进行跳转时,仍能保留referrer信息。 - 当使用HTML的`meta`标签进行页面刷新时,IE和Firefox可能会丢失`document.referrer`。 以下是一些测试结果的总结: 1. 直接在地址栏输入URL,或者从书签访问URL,`document.referrer`通常都可以正常获取。 2. 点击链接(无论`target="_self"`或`target="_blank"`)进行跳转,大多数浏览器都可以保留`document.referrer`。 3. 右键点击链接并在新标签页或新窗口中打开,Safari中会丢失referrer,而其他浏览器一般可以保持。 4. 拖动链接到地址栏或标签栏的行为在不同浏览器中可能不同,有的浏览器不支持此操作,有的则会导致`document.referrer`为空。 5. 使用浏览器的前进/后退按钮,`document.referrer`通常能够正确返回。 6. JavaScript通过`location.href`或`window.open`改变页面,`document.referrer`在IE中可能丢失,但其他浏览器一般可以保持。 7. 服务器端的302重定向或Meta Refresh,`document.referrer`在部分浏览器中可能会被设为空。 因此,为了更稳定地获取页面来源,开发者需要考虑到这些浏览器差异。一种解决方案是利用`window.name`属性来传递页面信息,特别是在HTTPS到HTTP的转换过程中。在HTTPS页面设置`window.name`为当前URL,然后在HTTP页面通过读取`window.name`来恢复用户路径。 `document.referrer`虽然在多数情况下可以提供页面来源信息,但在设计跨浏览器的跟踪系统时,必须考虑到这些差异并采取相应的兼容性措施。对于需要精确追踪用户路径的应用,可能需要结合其他技术,如cookies,或者使用现代浏览器支持的更安全的API,如History API,来实现更可靠的数据收集。
- 粉丝: 1
- 资源: 949
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
评论0