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

标签 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 是阻塞的。

当通过移动设备(本文末尾的用户代理)查看时,第一个提示会被阻止,但当我点击“确定”时,第二个提示不会被阻止,因此警报会立即弹出并显示以下消息(假设我输入了 5 在第一个提示上):

5 null

为什么会这样?能解决吗?

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

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

最佳答案

郑重声明,在我的 Samsung Galaxy S2 上,无论是普通浏览器还是 Firefox 浏览器,你的 fiddle 都可以正常工作。

如果您仍然遇到问题,也许您可​​以使用 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>

关于javascript - window.prompt 在移动设备上的阻塞行为不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15571202/

相关文章:

javascript - Xpages-数据表 : On Click Event on Link if the Link has a specific label value

javascript - 无法在 Firefox 上关闭 on change 事件中的 alert()

javascript - 警报返回为未定义

javascript - 如何使用 Javascript 检查菜单链接或选项卡是否已被单击以及用户是否位于链接/页面上?

javascript - 我正在尝试创建一个带有复选框的价格计算器,如果超过一定数量,它会自动打折

android - 使用 Python 进行移动应用程序开发时遇到的挑战

java - Android API 2.2.1 是否过时而无法使用?

javascript - 如何获取 select jquery 对象的选定选项的文本值?

javascript - "can' t 创建隐藏全局属性的重复变量”

java - 使用 setScale 和 setTranslate(矩阵)