javascript - document.referrer.indexOf() 在 IE8 中失效

标签 javascript internet-explorer internet-explorer-8

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

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 方法,因此它不会中断。相反,它只会表现得好像测试失败了(我认为这是一个合适的默认值)

关于javascript - document.referrer.indexOf() 在 IE8 中失效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16724869/

相关文章:

javascript - IE 11 的奇怪 AJAX 错误

css - 网页字体未加载 IE8

html - IE8 Wordpress 网站兼容性问题 - 侧边栏显示在页面底部

JavaScript - 函数作为对象

javascript - 更改 1 个状态属性会触发重新渲染整个元素和所有子元素

Javascript/Css 导航未显示在仅在 ie 中准备就绪的 jquery 文档中

javascript - 如何将数组连接到对象数组内的数组?

html - 边框颜色 IE 与 Firefox

javascript - 在某些浏览器中,转义的 html 字符未被 jquery .html() 转义

javascript - 如何改进我的 jQuery 使其始终在 IE8 中工作,目前它是时好时坏