1

当应用程序不处于独立模式时,我想显示一个对话框。我有这个代码:

$(document).on("pageinit", "#home", function (e) {
  console.log('pageinit');
  if (!window.navigator.standalone && (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i))) {
    $.mobile.changePage('/mobile/install', {
        role: 'dialog',
        showLoadMsg: true,
        changeHash: false
    });
   }
});

问题是对话框出现但之后直接关闭并返回主页。

主页的 pageshow 事件发生两次。

如何防止这种行为?

谢谢你的帮助

4

1 回答 1

2

您需要使用设置延迟setTimeout

$(document).on("pageinit", "#home", function (e) {
 if (!window.navigator.standalone && (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i))) {
  setTimeout(function () {
    $.mobile.changePage('/mobile/install', {
      role: 'dialog',
      showLoadMsg: true,
      changeHash: false
    });
  }, 100);
 }
});
于 2013-07-20T12:13:54.153 回答