Отображение загрузчика страницы, когда rel="external"

Я перехожу на внешнюю HTML-страницу в мобильном приложении jQuery. загрузка страницы занимает некоторое время, я хочу показать загрузчик в то же время, но он не работает.. вот что я пытался..

$(document).ajaxStart(function() {
        //  $.mobile.loading('show');
        $.mobile.loading( "show", {
                    text: 'Please Wait!',
                    textVisible: 'true',
                    theme: "b",
                    textonly: 'true',
                    html: ''
            });

        });

        $(document).ajaxStop(function() {
            $.mobile.loading('hide');
        });

Я знаю, что rel="external" отключает ajax. Есть ли способ показать этому загрузчику открытие внешних ссылок?

1 ответ

Решение

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

Единственный возможный способ показать загрузчик перед навигацией - отложить переход на эту страницу setTimeout(),

HTML

<a href="http://www.*****.com" rel="external" class="ui-btn external">External Page</a>

JS

$(document).on("pagecreate", "#pageID", function () {
    $(".external").on("click", function (e) {
        e.preventDefault();
        var url = $(this).attr("href");
        $.mobile.loading("show", {
            text: "redirecting...",
            textVisible: true
        });
        setTimeout(function () {
            location.href = url;
        }, 2000); // 2secs delay
    });
});

Демо- код

Другие вопросы по тегам