addEvent несоответствие типов IE8 - PullRequest
0 голосов
/ 28 ноября 2018

Я получаю ошибку TYPE: Mismatch в 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());. Когда я нажимаю шаг за шагом, я получаю ошибку несоответствия.Не уверен, что происходит, но из-за ошибки остальная часть моего сценария не будет загружена.

У кого-нибудь есть идеи?

1 Ответ

0 голосов
/ 28 ноября 2018

С помощью attachEvent необходимо добавить + имя события, чтобы событие называлось onload

ОБНОВЛЕНИЕ

Также второй параметриз обоих слушателей события являются обратными вызовами, поэтому они выполняются при срабатывании события.Чтобы этого добиться, вам нужно убрать круглые скобки вызова функции.

...