<script type="text/javascript">
var x = prompt("enter x");
var y = prompt("enter y");
alert(x + " " + y);
</script>
这段非常简单的代码会提示用户输入 x
,然后输入 y
,然后显示包含这两个值的警报。在桌面浏览器上这很好用,因为 window.prompt
和 window.alert
是阻塞的。
当通过移动设备(本文末尾的用户代理)查看时,第一个提示会被阻止,但当我点击“确定”时,第二个提示不会被阻止,因此警报会立即弹出并显示以下消息(假设我输入了 5
在第一个提示上):
5 null
为什么会这样?能解决吗?
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 都可以正常工作。
如果您仍然遇到问题,也许您可以使用 setTimeout
或 setInterval
来持续检查这些提示是否已填写,如果已填写则发出警报。
类似于:
<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/