我正在尝试显示弹出窗口,但弹出窗口自动消失,没有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/
有关如何解决这个问题的想法吗?
答案 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横幅(不会被弹出窗口隐藏)不会影响弹出功能。