带有history = false autocloses的JQuery Mobile弹出窗口

时间:2013-04-05 09:22:52

标签: jquery jquery-mobile setinterval clearinterval jquery-mobile-popup

我正在尝试显示弹出窗口,但弹出窗口自动消失,没有history = 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 个答案:

答案 0 :(得分:9)

工作示例:http://jsfiddle.net/Gajotres/2EL5R/

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

Webkit浏览器讨厌弹出窗口,因此需要使用setinterval来触发它。其他一些jQuery Mobile功能也是如此。

答案 1 :(得分:0)

我有同样的问题,现在要解决这个问题几个小时。 Gajotres建议的解决方案首先工作,但最终没有在所有设备上工作。我测试了几个android,桌面和iOS浏览器。

我的案例中的问题是AdSense横幅,弹出窗口隐藏了这个问题。

Google AdSense会注意到该横幅广告不再可见,并在加载AdSense横幅时关闭该弹出广告。删除横幅,它现在完美地工作。页面上的其他AdSense横幅(不会被弹出窗口隐藏)不会影响弹出功能。