4
<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

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

现场示例: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

4

1 回答 1

0

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

如果您仍然遇到问题,也许您可​​以使用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>
于 2013-06-03T12:17:50.393 回答