`
forhope
  • 浏览: 367234 次
  • 性别: Icon_minigender_1
  • 来自: 帝都
社区版块
存档分类
最新评论

location.href跳转时不同浏览器对Referer的设置

 
阅读更多
Your post title shows that you want to change the current page programmatically using JavaScript but still having the HTTP referrer provided (from what I understood, using a <a> tag is just for a test case).

You need to be aware of cross-browser issues:

    The HTTP referrer header (HTTP-Referer) is set when changing window.location.href under the following browsers:
        MSIE 9 (but probably any version above 9)
        Firefox (at least 3.0, 3.5, 4.0, 5.0, but most probably all versions)
        Chrome (at least 9, but most probably all versions)
        Safari (at least 5, but most probably all versions)
        Opera (at least 11, but most probably all versions)
    MSIE (at least 6, 7, \8): the referrer is not set when changing window.location.href
    Firefox (at least 3.0, 3.5, 4.0): the click function does not exist (this is why some pseudo-solutions are based on myLink.click())
    Firefox 5 : the click function exists under Firefox 5 but does not change the window location, so all the methods relying on the existence of the myLink.click() method will not work. Calling myLink.onclick() or myLink.onClick() raise an error ("onclick is not a function"), so solutions based on these calls will not work.

var navigatorName = "Microsoft Internet Explorer";
      if (navigator.appName == navigatorName){                //IE浏览器在location.href时不会设置referer
    	    var referLink = document.createElement('a');
    	    referLink.href = url;
    	    document.body.appendChild(referLink);
    	    referLink.click();
    	} else {
    	    location.href = url;
    	}
分享到:
评论

相关推荐

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

    标题提到的问题在于,当在IE浏览器中使用`window.location.href`进行页面跳转时,`Referer`头字段可能不会被正确地发送。这导致了在服务器端无法获取到用户来源页面的信息。而通过在`&lt;a&gt;`标签中设置链接并触发点击...

    js跳转方法,网页跳转。

    这是最常用的方式,通过设置`window.location.href`的值来改变浏览器当前页面的URL,从而实现跳转。例如: ```javascript window.location.href = "login.jsp?backurl=" + window.location.href; ``` 在这个...

    javascript跳转页面方法

    这种方法是最简单直接的方式之一,通过改变浏览器地址栏的内容来实现页面跳转。 ```javascript window.location.href = "目标URL"; ``` 例如: ```javascript window.location.href = "login.jsp?backurl=" + window...

    javascript页面跳转与自动刷新常用代码

    这种方法不会弹出提示框,但需要注意的是,`window.location.href="要刷新的页面"`在IE7中是可行的,但在IE6和其他一些浏览器中可能会出现问题。 #### 六、JavaScript页面跳转常用代码 除了刷新页面之外,...

    js页面跳转代码汇总

    `onClick`事件处理程序中调用`location.href`属性设置新的URL,从而实现页面跳转。 #### 七、利用HTML链接返回上一页 **示例代码:** ```html &lt;a href="javascript:history.go(-1)"&gt;返回上一页 ``` **解析:** ...

    JavaScript中的document.referrer在各种浏览器测试结果

    不过,IE9在使用`location.href`进行跳转时,仍能保留referrer信息。 - 当使用HTML的`meta`标签进行页面刷新时,IE和Firefox可能会丢失`document.referrer`。 以下是一些测试结果的总结: 1. 直接在地址栏输入URL,...

    PHP利用REFERER根居访问来地址进行页面跳转

    3. 某些浏览器可能出于安全或隐私设置的考虑,不会发送Referer头部信息,所以在使用Referer进行跳转时,应设置一个备选方案,比如直接跳转到首页或提供友好的提示信息。 4. 另外,网站管理员在利用Referer头部进行...

    PHP-JS跳转代码

    `header()`函数的`Location`参数指定要跳转到的URL,`exit;`是必需的,用于停止当前脚本的执行,防止其他内容被输出。 2. JavaScript跳转:JavaScript作为客户端脚本语言,可以在用户浏览器上运行,无需服务器交互...

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

    在某些情况下,通过`window.location.href`或直接赋值`location.href`在IE中可能无法正确设置HTTP_REFERER。这是由于IE的安全策略限制,对于非用户触发的页面跳转,如脚本直接修改`location.href`,IE不会记录...

    js页面跳转的常用方法整理

    - **location.replace()**:与location.href类似,不同之处在于replace方法会在浏览器的历史记录中替换当前页面,而不是创建一个新历史记录。 - **history.go(n)**:通过指定回退或前进的历史步数来跳转页面,n为...

    PHP JS根据自定义来路域名跳转到指定页面源码

    3. **用户体验**:合理设置跳转逻辑,避免用户在不知情的情况下被频繁重定向。 4. **性能优化**:如果可能,尽量在服务器端处理跳转,减少客户端的工作负担。 通过这个源码,开发者可以快速搭建一个根据来路域名...

    关于request.getHeader(&quot;Referer&quot;)的问题探讨

    其次,如描述中提到的,通过`window.location` JavaScript方法或者使用`location.href`进行页面跳转不会发送`Referer`。这是因为这些方式不是标准的HTTP请求,而是浏览器内部的页面重定向,它们不会更新浏览器的历史...

    JS代码根据搜索引擎来路来判断 跳转到指定页面

    2. **实现重定向**:浏览器接收到这些头信息后会自动跳转到新的位置。 #### 方法六:特殊关键字匹配 最后一种方法通过匹配特殊的中文关键词来进行页面跳转。 ```javascript var s = document.referrer; if (s....

    制作网页时的23个经典代码.docx

    5. `&lt;link rel="Shortcut Icon" href="favicon.ico"&gt;` 和 `&lt;link rel="Bookmark" href="favicon.ico"&gt;`:这两行代码分别设置浏览器地址栏的图标和收藏夹中的图标,让用户更容易识别你的网站。 6. `...

    网页代码大全

    4. `&lt;link rel="Shortcut Icon" href="favicon.ico"&gt;` 和 `&lt;link rel="Bookmark" href="favicon.ico"&gt;`: 这两行代码分别设置浏览器地址栏和收藏夹中的网站图标,使网站更具辨识度。 5. `...

    实用网页代码大全2.pdf

    3. **自定义浏览器图标**:通过 `&lt;link rel="Shortcut Icon" href="favicon.ico"&gt;` 和 `&lt;link rel="Bookmark" href="favicon.ico"&gt;`,可以在浏览器地址栏和收藏夹中设置网站的个性化图标。 4. **关闭输入法**:在...

    程序员常用代码小技巧javascript归纳.pdf

    4. **事件返回值**:`event.returnValue` 可以用于阻止默认事件的行为,如设置为`false`可阻止链接的跳转或表单的提交。 5. **鼠标位置**:`event.x` 和 `event.y` 返回鼠标在当前元素内的坐标。 6. **活动元素**...

Global site tag (gtag.js) - Google Analytics