Страницы

Поиск по вопросам

Показаны сообщения с ярлыком framework7. Показать все сообщения
Показаны сообщения с ярлыком framework7. Показать все сообщения

понедельник, 6 января 2020 г.

Почему alert срабатывает два раза?

#javascript #framework7


В общем загружаем и показываем картинку, скачанную с сервера. Проблема в том, что
если сервер возвращает 404, то alert выскакивает 2 раза. Почему?

function view(a) {
var img = new Image();
var s = a;
myApp.showPreloader('Загружаем...');
img.src = s;
img.onload = function() {
    document.getElementById('showimg').innerHTML = '';
    var openPhotoSwipe = function(a) {
        myApp.hidePreloader();
        myApp.allowPanelOpen = false;
        document.getElementById("check").style.display = "block";

        var pswpElement = document.querySelectorAll('.pswp')[0];
        var items = [{
            src: s,
            w: img.width,
            h: img.height
        }];
        var options = {
            showAnimationDuration: 0,
            hideAnimationDuration: 0
        };
        var gallery = new PhotoSwipe(pswpElement, PhotoSwipeUI_Default, items, options);
        gallery.init();
        gallery.listen('destroy', function() {
            document.getElementById("check").style.display = "none";
            var elements = document.getElementsByTagName("input");
            for (var ii = 0; ii < elements.length; ii++) {
                if (elements[ii].type == "text") {
                    elements[ii].value = "";
                }
            }
            $$(window).width() < 770 && (myApp.allowPanelOpen = !0);
        });
    };
    openPhotoSwipe();
}
img.onerror = function() {
    myApp.alert('Не найдено...');
    myApp.hidePreloader();
}}

    


Ответы

Ответ 1



Из-за 404 может генерироваться не одна ошибка. Из-за этого может быть два myApp.alert('Не найдено...');. Как я понял, Ваш код выводит алерт только в случае ошибки, значит - их две.

Ответ 2



Попробуйте после срабатывания отключить ошибку img.onerror = null;

вторник, 12 февраля 2019 г.

Почему alert срабатывает два раза?

В общем загружаем и показываем картинку, скачанную с сервера. Проблема в том, что если сервер возвращает 404, то alert выскакивает 2 раза. Почему?
function view(a) { var img = new Image(); var s = a; myApp.showPreloader('Загружаем...'); img.src = s; img.onload = function() { document.getElementById('showimg').innerHTML = ''; var openPhotoSwipe = function(a) { myApp.hidePreloader(); myApp.allowPanelOpen = false; document.getElementById("check").style.display = "block";
var pswpElement = document.querySelectorAll('.pswp')[0]; var items = [{ src: s, w: img.width, h: img.height }]; var options = { showAnimationDuration: 0, hideAnimationDuration: 0 }; var gallery = new PhotoSwipe(pswpElement, PhotoSwipeUI_Default, items, options); gallery.init(); gallery.listen('destroy', function() { document.getElementById("check").style.display = "none"; var elements = document.getElementsByTagName("input"); for (var ii = 0; ii < elements.length; ii++) { if (elements[ii].type == "text") { elements[ii].value = ""; } } $$(window).width() < 770 && (myApp.allowPanelOpen = !0); }); }; openPhotoSwipe(); } img.onerror = function() { myApp.alert('Не найдено...'); myApp.hidePreloader(); }}


Ответ

Из-за 404 может генерироваться не одна ошибка. Из-за этого может быть два myApp.alert('Не найдено...');. Как я понял, Ваш код выводит алерт только в случае ошибки, значит - их две.