以下是简单的html,当在Android浏览器(nexus one)上查看时,只需更改手机的方向一次就会产生连续方向更改事件链。
<html><body>
<script type="text/javascript">
window.addEventListener("orientationchange",function(){alert("test");},false);
</script>
</body></html>
有人可以解释并提出一些解决方法吗?< p>
答案 0 :(得分:4)
orientationchange是虚假地触发:打开一个警告对话框,或打开浏览器菜单触发它,它经常触发多次。因此,打开警报菜单会导致事件循环,这意味着必须手动杀死浏览器 - 它甚至缺乏针对警报循环的基本保护,并且使菜单无法访问。
(我不明白任何可以由while(1) alert("");
取出的生产浏览器。从什么时候开始远程JavaScript代码可信?它是最明显的客户端-DoS,并且无意中发生,但很多主要的浏览器对此一无所知.Opera是我所知道的唯一能够正确处理它的浏览器,它为视口而不是浏览器本身提供模式警报。)
答案 1 :(得分:0)
我认为Falmarri意味着默认情况下会发生这种情况。您可以阻止它发生并监听活动中的配置更改,然后自己旋转屏幕,然后不重新启动活动。请参阅此series on rotation。
答案 2 :(得分:0)
在调整窗口大小以反映新方向之前,这些设备似乎会触发'orientationchange'事件。
如何解决此问题:github