3

下面的函数if在 IE8 的第一条语句处中断。我不确定是什么原因造成的,因为根据我的研究,这些都不应该引起问题。我也尝试toLowerCase()在属性之后添加方法referrer,但仍然没有运气。有任何想法吗?

function returnToLogin() {
    if (document.referrer.indexOf('attendant_login') > 0) {
        if (thisevent == null) {
            window.location = document.referrer;
        } else {
            setTimeout(returnToLogin, 1000);
        }
        return true;
    }
    return false;
}
4

3 回答 3

2

IE 并不总是设置document.referrer属性。解决方案是在调用方法之前检查它是否已定义。将您更改if为:

if (document.referrer&&document.referrer.indexOf('attendant_login') > 0) {

现在如果document.referrer不存在,它不会尝试调用它的indexOf方法,所以它不会中断。相反,它只会表现得好像测试失败了(我想这是一个合适的默认值)

于 2013-05-23T22:32:36.560 回答
1

您使用的 document.referrer 将返回除 Internet Explorer 之外的所有浏览器的请求页面 URL,在某些情况下,它实际上在 IE 中返回 null。

于 2013-05-23T22:33:13.963 回答
-1

IE 使用Array.indexOf(). 改为使用 jQuery.inArray()

于 2013-05-23T23:20:21.803 回答