javascript - jQuery Mobile 对话框在 Chrome 中立即消失

标签 javascript jquery google-chrome jquery-mobile

我已经看了一段时间,觉得我遗漏了一些明显的东西......

我正在使用 jQuery Mobile 为 Web 应用程序的用户弹出一个对话框,我正在使用用户代理嗅探来提供一个快速对话框来指导用户如何根据他们的平台选择安装应用程序。

虽然这似乎无关紧要,但我想确保我尽可能地覆盖我的基地。最后一个 if 语句适用于宽度小于 600 像素且没有以前的 ua 字符串之一的浏览器...因此,如果您减少 Chrome 的桌面安装,它将触发该弹出窗口。但是,在 Chrome 中它出现然后立即消失。我看不到任何抛出的错误,因为我没有看到它在 Firefox 中发生,所以我没有看到发生了什么。

我有两个问题:

1 - 有谁知道这里发生了什么?我试过返回 false 和不返回 false,我认为这无关紧要,只是为了测试转义。

2 - 有没有人对做这个清洁剂有什么建议。由于我正在测试 ua,我正在考虑尝试将其作为 switch 语句运行,但我不确定测试是否可以正常工作......但我觉得我没有正确地解决这个问题方式。

var ua = navigator.userAgent.toLowerCase();
var isAndroid = ua.indexOf("android") > -1;
var isWinPhone = ua.indexOf("windows phone") > -1;
var isBlackberry = ua.indexOf("blackberry") > -1;
var isbbTen = ua.indexOf("bb10") > -1;
var current_width = $(window).width();
$( '#home' ).live( 'pageinit',function(event){
if(isAndroid) {
$.mobile.changePage( '#android' , { transition:"pop", role:"dialog" });
return false;
};
if(isWinPhone) {
$.mobile.changePage( '#winPhone' , { transition:"pop", role:"dialog" });
return false;
};
if(isBlackberry) {
$.mobile.changePage( '#Blackberry' , { transition:"pop", role:"dialog" });
return false;
};
if(isbbTen) {
$.mobile.changePage( '#bbTen' , { transition:"pop", role:"dialog" });
return false;
};
if(current_width < 599 && !isAndroid && !isWinPhone && !isBlackberry && !isbbTen){
$.mobile.changePage( '#generic' , { transition:"pop", role:"dialog" });
return false;
};
});

你可以在这里看到同样的事情发生:http://jsfiddle.net/fskirschbaum/2YTwE/1/如果您在 Chrome 中查看它。

我尝试了一些其他参数,但一开始不明白为什么会这样,我不知道从哪里开始。

最佳答案

我也有一个消失的对话问题 - 事实证明与早期试图摆脱“闪烁”有关 - 一个 SO 答案表明以下将停止闪烁(它没有):

.ui-page { -webkit-backface-visibility: hidden; }

当我删除这行 css 时,对话框工作正常。

关于javascript - jQuery Mobile 对话框在 Chrome 中立即消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15098520/

相关文章:

javascript - D3 将颜色合并为渐变

php - Cakephp 创建 secret 输入的最佳方法

javascript - 尝试更改表单中未选择对象的边框颜色

javascript - 通过解析 XML 通过多个过滤器过滤 UL

google-chrome - Chrome 扩展 xhr 请求被取消

javascript - ie9中报错requestAnimationFrame任何替代解决方案

javascript - 错误 : Cyclic dependency, 节点为 :"dateA"

python - windows chrome 通过命令行刷新选项卡 0(或当前选项卡)

javascript - 在 mousedown 处理程序中更改可见性属性时,不会在 Safari 或 Firefox 中触发单击处理程序

javascript - 更改选择框选项后如何重新加载同一页面