下面的函数在IE8中的第一个if语句处中断。我不确定是什么原因引起的,因为根据我的研究,这都不会引起问题。我也尝试在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;
}

最佳答案

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

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

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

10-05 20:42