打开新的窗口与保住页面的referrer

我们通常的需要打开新窗口的时候,会采用下面三者之一:(我不知道是否还有其他方法)

1.通过链接打开新的页面
<a href="http://www.simplelife.cn" target="_blank">Open a new window</a>

2.通过JavaScript的window.open()函数打开新的窗口
<script>
window.open("http://www.simplelife.cn");
</script>

3.通过Form表单提交到新的页面
<form action="http://www.simplelife.cn" target="_blank">
Open a new window
</form>

有的时候,我们不但要打开新窗口,而且还想让打开的新窗口有referrer信息,以便统计来路。

通过实验发现:在firefox浏览器下,上面的三种方式在新窗口中都可以顺利的保留referrer,而在IE浏览器下,第二种方式不能保留referrer。

在某种应用场合下,例如在打开窗口前需要做一些数据验证操作等的时候,不允许我们使用链接来打开新窗口,而必须使用JavaScript来打开新窗口,这时候如果还需要保留referrer,经过实验只能使用下面的方式:

<font οnclick="Go('http://www.simplelife.cn')">Go</font>
<form name=JumpForm id=JumpForm action="" target="_blank" Method=Post>
</form>
<script>
function Go(url){
var form = document.getElementById("JumpForm");
form.action=url;
form.submit();
}
</script>

有的时候,需要跳转的URL是需要参数的,形如:
http://www.simplelife.cn/blog/index.php?op=ViewArticle&articleId=193&blogId=1

这时如果使用Form表单的Get方式提交,将会造成URL携带的参数无法传送过去,只能使用Post方式提交,所以上面的程序使用Post方式提交表单。

这样:既可以打开新窗口,又可以保留referrer的完整解决办法出炉了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Referrer Policy(引用者策略)是一个HTTP头部,它控制浏览器在发送请求时是否包含Referer(引用者)头部信息,该头部信息包含了当前页面URL地址。Referrer Policy可以用来保护用户的隐私,因为通过Referer头部信息,网站可以获取到用户访问来源的信息,包括用户的浏览历史、搜索关键字等。 Referrer Policy有以下几个取值: - no-referrer:不发送Referer头部信息。 - no-referrer-when-downgrade:默认值,对于HTTPS请求,不发送Referer头部信息;对于HTTP请求,发送完整的URL地址作为Referer头部信息。 - same-origin:只在请求和当前页面同源的情况下发送Referer头部信息。 - origin:只发送当前页面的来源地址(协议、域名、端口)作为Referer头部信息。 - strict-origin:只在请求和当前页面同源的情况下发送Referer头部信息,并且不包含路径信息。 - origin-when-cross-origin:对于同源请求,只发送当前页面的来源地址作为Referer头部信息;对于跨域请求,发送完整的URL地址作为Referer头部信息。 - strict-origin-when-cross-origin:对于同源请求,只发送当前页面的来源地址作为Referer头部信息;对于跨域请求,只发送当前页面的来源地址(协议、域名、端口)作为Referer头部信息,并且不包含路径信息。 可以在HTTP响应头部中添加Referrer-Policy头部信息来设置引用者策略,例如: ``` Referrer-Policy: no-referrer ``` 以上代码设置了引用者策略为no-referrer,表示浏览器在发送请求时不会发送Referer头部信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值