我希望在应用未处于独立模式时显示对话框。我有这段代码:
$(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事件发生了两次。
如何防止这种行为?
感谢您的帮助
答案 0 :(得分: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);
}
});