Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 定向更改和调整大小事件存在问题-这两种方法都不能在所有移动浏览器中正常工作_Javascript_Android_Html_Web Applications_Mobile - Fatal编程技术网

Javascript 定向更改和调整大小事件存在问题-这两种方法都不能在所有移动浏览器中正常工作

Javascript 定向更改和调整大小事件存在问题-这两种方法都不能在所有移动浏览器中正常工作,javascript,android,html,web-applications,mobile,Javascript,Android,Html,Web Applications,Mobile,我试图告诉当屏幕大小在移动网站上的变化。问题在于,每个浏览器的实现方式都不同。我想我可以检查方向更改支持并使用它,但会退回到调整事件大小,但这会导致以下问题: 在Dolphin HD中,方向更改提供了上一个方向的宽度 例如,在纵向图中是384,横向图是589。如果我从纵向旋转到横向,它会向window.innerWidth 384报告方向更改,这是纵向的。如果我旋转到纵向,它报告589,这是横向的宽度 如果我使用resize事件,它会被调用三次 这发生在Chrome、Firefox中。所

我试图告诉当屏幕大小在移动网站上的变化。问题在于,每个浏览器的实现方式都不同。我想我可以检查方向更改支持并使用它,但会退回到调整事件大小,但这会导致以下问题:

  • 在Dolphin HD中,方向更改提供了上一个方向的宽度
例如,在纵向图中是384,横向图是589。如果我从纵向旋转到横向,它会向window.innerWidth 384报告方向更改,这是纵向的。如果我旋转到纵向,它报告589,这是横向的宽度

  • 如果我使用resize事件,它会被调用三次
这发生在Chrome、Firefox中。所以这可能是安卓系统的问题。在第三次调用时,它确实以正确的宽度结束,但在此之前,它是一个不同的宽度,因此它会导致我的代码多次调整大小。那不是很有反应


解决方案是什么?

当启动调整大小事件时,您是否能够使用
document.body.clientWidth
document.body.clientHeight
读取正确的大小?我不确定,但这在移动设备中仍然应该得到支持。@krillgar是的,在Android上,我似乎可以缓存clientWidth,然后忽略我的侦听器后面的两个调用。但我没有iPhone可供测试,所以我不知道它在那里是如何工作的。在你的帖子中,是不是触发了三次调整大小事件?就像另一个spitball(因为没有其他人响应)一样,你能得到屏幕的方向吗?这可能会很草率,但如果你知道它是横向的,那么这两个值中的较宽值就是你要查找的宽度。调整大小事件是否在方向更改事件之后触发?@krillgar是的,是调整大小事件触发了3次。