javascript - addEvent 类型与 IE8 不匹配

标签 javascript internet-explorer-8 type-mismatch attachevent

我在 IE8 中收到“类型:不匹配”错误,代码如下。

    function showTabs() {
    for (var i = 0; i < tabs.length; i++) {
        tabs[i].style.display = "inline-block";
        if (tabs[i]) {
            console.log(tabs[i] + " " + i);
        }
    }
}

function showThumbBoxes() {
    for (var i = 0; i < thumbsContainers.length; i++) {
        thumbsContainers[i].style.display = "block";
        if (thumbsContainers[i]) {
            console.log(thumbsContainers[i] + " " + i);
        }
    }
}

function loadImages() {
    for (var i = 0; i < lazyImages.length; i++) {
        if (lazyImages[i].getAttribute("data-src")) {
            lazyImages[i].src = lazyImages[i].getAttribute("data-src");
            if (lazyImages[i]) {
                console.log(lazyImages[i] + " " + i);
            }
        }
    }
}

function hideContainers() {
    for (var i = 0; i < hiddenContainers.length; i++) {
        hiddenContainers[i].style.display = "none";
        if (hiddenContainers[i]) {
            console.log(hiddenContainers[i] + " " + i);
        }
    }
}

function setUpPage() {
    showTabs();
    showThumbBoxes();
    loadImages();
    hideContainers();
}

if (window.addEventListener) {
    window.addEventListener("load", setUpPage())
} else {
    window.attachEvent("load", setUpPage()); <<< Here seems to be causing issues.
}

我已经单步执行了代码,它正确地完成了所有内容,并且所有内容都已加载到页面上。在我单步执行 setUpPage 函数的最后一个大括号后,它返回到 attachEvent("load", setUpPage()); 当我再次单击单步执行时,出现不匹配错误。不知道发生了什么,但由于错误,我的脚本的其余部分将无法加载。

有人有想法吗?

最佳答案

使用attachEvent,您需要添加 on + 事件名称,因此该事件将被称为onload

更新

两个事件监听器的第二个参数都是回调,因此它们会在事件触发时执行。 为了实现这一点,您需要删除函数调用的括号。

关于javascript - addEvent 类型与 IE8 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53522437/

相关文章:

excel - 取消 GetSaveAsFilename

javascript - jquery在点击时更改div的背景图片

javascript - react : open link in a new tab

javascript - 使用 JQuery 操作 Tinymce 文档 DOM

javascript - 获取所有不包含数据属性的元素

javascript - IE 8 不支持 indexOf?

javascript - 为什么这个 jQuery 代码片段在 IE8 中不能像在 Firefox 或 Chrome 中那样工作(包括现场演示)?

java - 类型不匹配无法从 float 转换为 Boolean

css - 过滤器 : gradient and background: fixed

使用 where 嵌套函数定义中的 Haskell 范围