@Javascript中document.referrer在IE中失效问题,解决方法?(第3条中有,解决方法,就是用a表标签代替window.location跳转。)
1 用脚本跳到一个目标页面去
<a  onclick="window.open('http://www.gyyx.cn/MainFrame.aspx')"> Opener</a>
或者
<a  onclick="window.location='http://www.gyyx.cn/MainFrame.aspx'"> location </a>

2 目标页面取来源页面URL
document.write("js获取上(前)一页url:【" + document.referrer + "】<br>");
 
3 (问题)我们会发现:如果是IE及其以IE为内核的浏览器(像maxthon、360浏览器)会读取不到来源页
---找了一个替代方案:
function redirect(url) {
    if (/MSIE (/d+/./d+);/.test(navigator.userAgent)) {
    //如果是ie浏览器,就添加一个a标签对象,然后跳转过去。用a标签对象代替window.location=url。
        var referLink = document.createElement('a');
        referLink.href = url;
        document.body.appendChild(referLink);
        referLink.click();
    }
    else {
        location.href = url; //非ie浏览器,可以不用上边方法处理。
    }

4 再次在上边1步骤中调用:<a  onclick="redirect('http://www.gyyx.cn/MainFrame.aspx')"> 自改代码 </a>
* 发现能获取了:
js获取上(前)一页url:【http://www.gyyx.cn/UnDependentPage.aspx】    


***总结

1,建议,页面跳转时都用a标签跳转,直接a标签跳转,或者使用上边方法跳转。

2,注意:在js上用document.referrer获取值时,在IE下容易丢失,如果在.net下,试下<%=Request.UrlReferrer.AbsolutePath%>
---document.referrer在ie10以下都获取不到值,经测试,同样在后台cs中也获取不到,Request.UrlReferrer对象是空的,直接调用Request.UrlReferrer.AbsolutePath属性时,会报System.NullReferenceException: 未将对象引用设置到对象的实例异常。

posted on 2014-02-15 08:48  学到老死  阅读(1808)  评论(0编辑  收藏  举报