簡體   English   中英

clientWidth和clientHeight在Android默認瀏覽器上延遲嗎?

[英]clientWidth and clientHeight delayed on Android default browser?

event: 我正在使用jqtouch.js(與zepto.js一起)並測試事件:

http://www.ebi.ac.uk/~mp/test_orientation.html

<!DOCTYPE html>
<meta charset="utf-8">
<html>
  <head>
    <!-- Local jqTouch -->
    <link rel="stylesheet" href="lib/jqtouch-1.0-b4-rc/themes/css/apple.css" title="jQTouch">
    <!-- <style type="text/css" media="screen">@import "lib/jqtouch-1.0-b4-rc/themes/css/jqtouch.css";</style> -->
    <script src="lib/jqtouch-1.0-b4-rc/src/lib/zepto.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="lib/jqtouch-1.0-b4-rc/src/jqtouch.js" type="text/javascript" charset="utf-8"></script>

    <script type="text/javascript" charset="utf-8">
      var jQT = new $.jQTouch({});
    </script>

  </head>
  <body>
    <h1>Hello World</h1>
    <script>
       window.onorientationchange = function() {
         var w = document.documentElement.clientWidth;
         var h = document.documentElement.clientHeight;
         alert("WIDTH: " + w + " -- HEIGHT: " + h);
       }
    </script>
  </body>
</html>

使用默認的Android瀏覽器打開此頁面時,我得到的clientWidth和clientHeight編號會顛倒(將方向更改為橫向時,高度大於寬度,反之亦然)。 如果我插入一小段延遲:

http://www.ebi.ac.uk/~mp/test_orientation_delay.html

<script>
   window.onorientationchange = function() {
     setTimeout(function() {
       var w = document.documentElement.clientWidth;
       var h = document.documentElement.clientHeight;
       alert("WIDTH: " + w + " -- HEIGHT: " + h);
     }, 500);
   }
</script>

正確檢索到clientWidth和clientHeight。 Safari(iOS5)或Chrome不會發生這種情況(它們不需要短暫的延遲即可顯示正確的數字)。 是否有其他方法可以安全地一致地檢索這些數字(而不必引入足夠或不足夠的任意延遲)?

M;

可能為時已晚,但我認為這與事實,事件觸發時你還在尋找在狀態之前做。 新的國家將事件發生后,作為事件只告訴你“我要改變方向,但沒有做到這一點呢。”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM