IE在location.replace之后有空的document.referrer

mat*_*weg 16 javascript internet-explorer

我有一个网站进行复杂的搜索,并有一个"加载"页面.在加载页面上我们使用:

<body onload="window.location.replace('results_page.php');" >

要么:

<body onload="window.location = 'results_page.php';" >

上面两个选项之间的唯一区别是location.replace()忽略浏览器历史记录中的页面.

在results_page上,我需要阅读引荐来源以进行跟踪:

<script> alert(document.referrer); </script>

这适用于除IE之外的所有浏览器,它返回并为空值document.referrer.

任何人都知道更好的方法来进行javascript重定向,这将给IE一个引用者的值?

ps这个例子比生产中的例子简单得多.

mat*_*weg 24

看起来这只是与IE用户开展业务的成本.没有黑客就无法修复.现在正在努力.谢谢收听.

http://webbugtrack.blogspot.com/2008/11/bug-421-ie-fails-to-pass-http-referer.html

我使用解决方法来实现此功能.奇迹般有效.

<script type="text/javascript" >            
function redirect(url) {
    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;
    }
}
</script>
Run Code Online (Sandbox Code Playgroud)