`
mbn
  • 浏览: 23476 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

兼容IE和FF获取Referer的JS方法

阅读更多
众所周知,我们web开发人员痛恨IE浏览器,因为IE不支持标准,标准外的默认行为又和其他浏览器经常不一致:
在IE中用javascript做跳转,比如用window.location.href = “http://www.google.com”; google无法取到浏览器请求的HTTP referrer,因为IE清空了document.referrer

而其他主流浏览器Firefox和Chrome都会保留referrer,这意味着IE又要享受“部长级”特殊待遇了:

       if (/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就能保留了,这个办法是一个国外论坛上看到的,想不起哪儿了,不过感谢作者。
分享到:
评论

相关推荐

    完美兼容各大浏览器获取HTTP_REFERER方法总结

    在网页开发中,HTTP_REFERER头信息是一个非常重要的字段,它标识了用户是从哪个页面跳转到当前页面的。...这些方法已经在IE、Firefox、Safari和Chrome等主流浏览器上经过测试,可以提供良好的兼容性。

    javascript操作referer详细解析

    JavaScript中的`referer`是一个关键的HTTP头部字段,它记录了用户从哪个URL访问了当前页面。这个信息对于网站分析、追踪用户来源以及了解流量来源至关重要。在JavaScript中,我们可以使用`document.referrer`来获取...

    IE BHO插件,修改referer

    `IBrowserService`接口提供了与浏览器交互的方法,例如获取当前浏览的URL、监视导航事件等。然后,通过注册表项将BHO注册到IE,使得每次浏览器启动时都会加载这个插件。 注册BHO时,需要在`HKEY_LOCAL_MACHINE`或`...

    IE下通过a实现location.href 获取referer的值

    总之,通过理解`Referer`的工作原理和不同浏览器的差异,我们可以针对特定环境编写兼容性代码,确保在IE下也能获取到用户来源页面的信息。这个例子展示了在实际开发中,对浏览器特性的理解和利用是多么重要。

    解决js下referer兼容各大浏览器的方法

    获取这个东西最好的方式是js,如果在服务器端获取(PHP方法如:$_SERVER[‘HTTP_REFERER’]) 不靠谱,人家可以伪造,用js获取最好,人家很难伪造, 方法:利用js的 document.referer 方法可以准确地判断网页的真实...

    php 伪造IP和HTTP-REFERER的方法

    ### PHP 伪造IP和HTTP-REFERER的方法 #### 背景介绍 在网络环境中,IP地址和HTTP_REFERER(HTTP-REFERER)是两种常见的用于跟踪和识别用户请求的数据。其中,IP地址通常用来标识网络中的设备;而HTTP_REFERER则记录...

    request.getHeader("referer")防盗链

    这个方法允许我们获取到用户发起请求时的来源页面URL,从而判断请求是否合法。 首先,让我们深入理解HTTP头部的"Referer"(有时也拼写为"Referrer")。这个字段在HTTP请求头中扮演着关键角色,它记录了用户点击链接...

    csrf绕过Referer技巧-01

    本文将详细介绍CSRF绕过Referer技巧,包括Referer防御CSRF原理、Referer防御代码编写、绕过Referer技巧和Burpsuite自动生成POC。 一、Referer防御CSRF原理 HTTP Referer是header的一部分,当浏览器向Web服务器发送...

    基于Javascript的express-referer防盗链Node.js设计源码

    referer是一个基于Javascript开发的防盗链Node.js项目,包含520个文件,其中包括170个JavaScript文件、127个Markdown文件、87个JSON文件、19个TypeScript文件、17个ESLint配置文件、17个YAML文件、12个NYCrc文件、3...

    使用JavaScript和C#中获得referer

    同时,`Request`对象提供了丰富的属性和方法用于处理和获取URL的不同部分,例如: - `Request.UrlReferrer`: 返回发起请求的完整URL。 - `Request.Url`: 返回当前请求的URL对象。 - `Request.Url.Authority`: 包含...

    Android CordovaWebview Add Header Referer

    本代码是处理android hybrid混合应用,遇到的webview 拦截 header referer 问题的解决。 场景:angular $HTTP 或者js的http请求或者其他。。webview成功拦截get 、post、delete请求,添加header,referer以及body ...

    nginx利用referer指令实现防盗链配置

    在网络安全和资源保护方面,防止未经授权的外部网站盗用服务器上的资源,如图片、视频等,是至关重要的。Nginx 提供了一个名为 ngx_http_referer_module 的模块,专门用于处理 HTTP 请求头中的 `Referer` 字段,从而...

    JSP获取HTTP header信息(request)例子

    - `request.getHeader("Referer")`: 获取上一个页面的URL。 - `request.getHeader("Accept-Language")`: 获取客户端可接受的语言。 - `request.getHeader("Accept-Encoding")`: 获取客户端支持的编码方式。 - `...

    ASP,PHP与.NET伪造HTTP-REFERER方法及防止伪造REFERER的方法

    这段代码首先创建了一个`MSXML2.XMLHTTP`对象,接着通过`setrequestheader`方法设置了Referer字段,最后发送请求。 #### PHP环境中的HTTP-REFERER伪造 PHP中伪造HTTP-REFERER同样有两种常见方式:使用cURL库和基于...

    IE9 IE8 ajax跨域问题的快速解决方法

    总之,解决IE9和IE8的Ajax跨域问题通常需要结合前端的代码调整和浏览器的安全设置修改,同时也需要注意其他与这些浏览器兼容性相关的问题。在实际项目中,为了提高兼容性和安全性,推荐使用现代的前端框架和库,以及...

    通过修改referer下载文件的方法

    `GetFile`函数则是用户触发下载动作的入口,它根据用户输入的URL和Referer值,调用组件的`GetFile`方法。 总的来说,这个技术涉及到了HTTP协议中的`Referer`头、ActiveX对象的使用、XMLHttpRequest的异步请求处理...

Global site tag (gtag.js) - Google Analytics