移动设备上window.prompt的阻塞行为不一致

时间:2013-03-22 13:11:07

标签: javascript mobile alert prompt

<script type="text/javascript">
    var x = prompt("enter x");
    var y = prompt("enter y");
    alert(x + " " + y);
</script>

这个非常简单的代码会提示用户x,然后提示y,然后显示包含这两个值的提醒。在桌面浏览器上,这可以正常工作,因为window.promptwindow.alert正在阻止。

当通过移动设备(本帖末尾的用户代理)查看时,第一个提示阻止但是当我点击“确定”时第二个提示没有阻止,因此警报弹出以下消息(假设我输入了{ {1}}在第一个提示符上):

5

为什么会这样?可以解决吗?

实例:http://jsfiddle.net/YEA5w/

  

Mozilla / 5.0(Linux; U; Android 2.3.5; en-gr; HTC_WildfireS_A510e   Build / GRJ90)AppleWebKit / 533.1(KHTML,像Gecko)Version / 4.0 Mobile   Safari浏览器/ 533.1

1 个答案:

答案 0 :(得分:0)

为了记录,我在股票和Firefox浏览器上的三星Galaxy S2上,你的小提琴对我来说很好。

如果您仍然遇到问题,也许您可​​以使用setTimeoutsetInterval来持续检查这些提示是否已填写,如果有则提醒。

类似的东西:

<script>
    var x = false;
    var y = false;
    var timer = setInterval(function(){
            if(x !== false && y !== false) {
                 alert(x + " " + y);
                 clearInterval(timer);
            }
    },100);
    x = prompt("enter x");
    y = prompt("enter y");
</script>