【问题标题】:JQuery Mobile popup with history=false autocloses带有 history=false 自动关闭的 JQuery Mobile 弹出窗口
【发布时间】:2013-04-05 09:22:52
【问题描述】:

我正在尝试显示一个弹出窗口,但弹出窗口会自动消失,没有 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/

知道如何解决这个问题吗?

【问题讨论】:

  • 似乎可以在 firefox 上工作,但在 chrome / safari 上坏了

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


【解决方案1】:

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

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

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

【讨论】:

  • 你知道这个问题的票吗?
  • 我认为没有。首次引入弹出窗口时,首先出现此问题。像表格小部件一样,弹出窗口可能是最糟糕的 jQM 插件。它有很多问题和错误,从定位不正常到非常糟糕的文档。
  • 为了在我的应用程序中修复它,我需要将间隔设置为 1000,并且您应该在它运行后调用 clearInterval
  • 不管怎样让它对你有用。你是对的,我忘记了明确的间隔。我会更新我的答案。
  • 不知道,无论如何这是脆弱的代码,我宁愿看到不同的解决方法或指向正确错误报告的链接,以确认此问题的原因是什么
【解决方案2】:

我有同样的问题想解决这个问题几个小时。 Gajotres 建议的解决方案首先开始工作,但最终并没有在所有设备上运行。我测试了几个安卓、桌面和 iOS 浏览器。

我的问题是 AdSense 横幅,它被弹出窗口隐藏了。

Google AdSense 会注意到横幅不再可见,并在加载 AdSense 横幅后关闭弹出窗口。删除了横幅,它现在可以完美运行。页面上没有被弹出窗口隐藏的其他 AdSense 横幅不会影响弹出窗口的功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多