2009-08-03 40 views
0

ここで私の問題を示す短いテストです。 4つのアラートはそれぞれ、50、60、64および74を返すべきjQueryがFirefoxのiframeで正しくない要素の高さを報告しています

<html> 
    <head> 
     <title></title> 
     <style> 
      div { 
       height: 50px; 
       width: 50px; 
       margin: 5px; 
       padding: 5px; 
       border: 2px solid #00f; 
       background-color: #f00; 
      } 
     </style> 
    </head> 
    <body> 
     <div></div> 
    </body> 
</html> 

<html> 
    <head> 
     <title></title> 
     <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.js"></script> 
    </head> 
    <body> 
     <iframe id="iframe" src="box.html" style="width: 100px; height: 100px"></iframe> 
     <script> 
      $('#iframe').bind('load', function() { 
       var div = $(this).contents().find('div'); 
       alert(div.height()); 
       alert(div.innerHeight()); 
       alert(div.outerHeight()); 
       alert(div.outerHeight(true)); 
      }); 
     </script> 
    </body> 
</html> 

のiframe(box.html)は、単一のスタイルのdivが含まれています。私はインラインフレームをロードするページを持っています。これはSafariとChromeで期待どおりに動作します。 FF 3.5.1では、すべて64に戻ります。これは間違っています。

FF/jQueryが正しい値を返すように強制する方法を知っている人はいますか?

答えて

0

代わりにこれを試してみてください:

var div = $(this).contents().find("html"); 
関連する問題