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 на странице, которые не скрываются во всплывающем окне, не влияют на функциональность всплывающего окна.