如何修改js里面的document.referrer值

JavaScript026

如何修改js里面的document.referrer值,第1张

js完整代码:<script language="javascript"> var refer=document.referrer document.getElementById('backurl').value=refer</script>“HTTP_REFERER”链接到当前页面的前一页面的 URL 地址。不是所有的用户代理(浏览器)都会设置这个变量,而且有的还可以手工修改 HTTP_REFERER。因此,这个变量不总是真实正确的。注意 document.referrer和“HTTP_REFERER” 中间差一个字母,却是不同的概念的东东,请注意使用js中的referrer使用,返回上一页在js中写上location.href = document.referrer就可以实现跳转到上一个页面了,让用户觉得体验很好但是在IE中referrer就没那么尽人意了啊,IE会清空referrer众所周知,我们web开发人员痛恨IE浏览器,因为IE不支持标准,标准外的默认行为又和其他浏览器经常不一致:在IE中用javascript做跳转,比如用window.location.href = “http://www.hnnedu.com ”google无法取到浏览器请求的HTTP referrer,因为IE清空了document.referrer而其他主流浏览器Firefox和Chrome都会保留referrer,这意味着IE又要享受“部长级”特殊待遇了:view sourceif (/MSIE (\d+\.\d+)/.test(navigator.userAgent)){var referLink = document.createElement('a') referLink.href = url document.body.appendChild(referLink) referLink.click()}else { location.href = url}这样的原理就是给IE浏览器的页面偷偷加了个链接,然后自动点这个链接,于是referrer就能保留了。

1、pc端返回上一页:

2、移动端返回上一页:

referrer 可以获取返回跳转或打开到当前页面的那个页面。如果用户直接打开了这个页面(不是通过页面跳转,而是通过地址栏或者书签等打开的),则该属性为空字符串。

由于该属性只是返回一个字符串,所以不能够通过该属性引用页面的 DOM。

特殊情况:

1.直接在浏览器中输入地址

2.用location.reload()、location.href()、location.replace()等刷新页面

3.扫码进入微信或QQ浏览器

4.直接新窗口打开一个页面

5.meta标签来控制不让浏览器发送referer <meta content="never" name="referrer">

<meta name="referrer" content=“no-referrer”>

referrer是用于追踪用户是从哪个页面跳转过来,js中使用document.referrer来得到值,一般用户做移动端back按钮,如用户通过别人发送时候链接进入页面时,可以隐藏back按钮。

referrer有五种属性

No Referrer (永远不做记录)

No Referrer When Downgrade(浏览器默认,当降级时候不记录,从https跳转到http)

Origin Only(只记录 协议+ host)

Origin When Cross-origin(仅在发生跨域访问时记录 协议+host)

Unsafe URL(永远记录)

参考链接: Referrer Policy 介绍  和  document.referrer的用法详解