IE中使用window.open打开新窗口时无法获取Referrer对象
在IE中,当你使用javascript的window.open方法来打开一个新的对象的时候,IE并不会自动帮你传递Referrer对象到新的窗口的,也就是说你在新窗口中使用javascript读取document.Referrer对象时只会读到空值。而且后台在HTTP请求头中也不会包含Referrer头的。例如
<a href="javascript:window.open('newurl.php','','');">click here</a>
如果是我们自己做的站点,那么我们最好使用target属性来规避这个问题。如下
<a href="newurl.php" target="_blank">click here</a>
如果打算在javascript中处理Referrer信息,那么还可以通过下面的方法来获取Referrer信息
var ReferringUrl = "";
if (document.referrer)
ReferringUrl = document.referrer.toString();
if (window.opener && window.opener.location)
ReferringUrl = window.opener.location.toString();
if (document.referrer)
ReferringUrl = document.referrer.toString();
if (window.opener && window.opener.location)
ReferringUrl = window.opener.location.toString();
如果后台代码也需要访问Referrer信息,并且必须得使用window.open方法时,那么可以将Referrer的信息作为querystring的一部分来传递
<a href="javascript:window.open('newurl.php?' + urlencode
(document.location.toString()),'','height=200,width=150');">click here</a>
(document.location.toString()),'','height=200,width=150');">click here</a>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述