JQuery Mobile всплывающее окно с историей = ложные автокосы

Я пытаюсь показать всплывающее окно, но оно исчезает автоматически, без истории =false, всплывающее окно остается видимым, но затем при закрытии всплывающего окна запускается обратное действие браузера.

<div data-role="page" id="indexpage">
    <div data-role="popup" data-history="false" id="appPopup">test popup</div>
    <script>
    $("#indexpage").on("pageshow", function () {
        $("#appPopup").popup("open");
    });
    </script>
</div>

Проверьте, что происходит здесь: http://jsfiddle.net/francisdb/ThtfZ/

Есть идеи, как это исправить?

2 ответа

Рабочий пример: http://jsfiddle.net/Gajotres/2EL5R/

$("#indexpage").on("pageshow", function () {
    var popup = setInterval(function(){
        $("#appPopup").popup("open");
        clearInterval(popup);
    },1);
});

Браузеры Webkit ненавидят открывать всплывающие окна, поэтому для его запуска необходимо использовать setinterval. То же самое касается нескольких других функций jQuery Mobile.

У меня была та же самая проблема, решающая это теперь в течение нескольких часов. Решение, предложенное Гайотресом, сначала сработало, но, в конце концов, не на всех устройствах. Я протестировал несколько браузеров Android, Desktop и iOS.

Проблемой в моем случае был баннер AdSense, который был скрыт всплывающим окном.

Google AdSense заметит, что баннер больше не виден, и закроет всплывающее окно после загрузки баннера AdSense. Убрал баннер, и теперь он работает отлично. Другие баннеры AdSense на странице, которые не скрываются во всплывающем окне, не влияют на функциональность всплывающего окна.

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