• ベストアンサー

Operaで文書の高さを取得

Internet Explorer 4以降、Mozilla、Netscapeでは以下のコードで文書の高さを取得できます。 Operaで文書の高さを取得するにはどうしたらいいでしょうか? 無理であれば<div id="hoge">aaa<br>bbb</div>と書かれている部分の高さを求めるコードでもいいです。 if (document.height) { h=document.height; } else { h=document.body.scrollHeight; }

質問者が選んだベストアンサー

  • ベストアンサー
  • leap_day
  • ベストアンサー率60% (338/561)
回答No.3

こんにちは 実際に数値が合っているか分からないですが以下の方法でそれらしい値は取れました(IE,Firefox,Operaでやってみました) なぜIEのみdocument.getElementById("main").clientHeightにすると値が0になるのかまだまだ未熟者で分かりませんでした(><) 逆にOperaのみ↑にしてもいいです <script language="javascript"> <!-- function get() { var browserName=navigator.appName; if (browserName=="Microsoft Internet Explorer") h = document.body.clientHeight; else h=document.getElementById("main").clientHeight; document.getElementById("result").innerHTML = h; } //--> </script> <div id="main"> <input type="button" onClick="get()"> <div id="result"></div> a<br>b </div> ボタンをしたときの実行結果 【ブラウザ】-【result表示前】-【result表示後】 IE - 57 - 75 Opera - 51 - 67 Firefox - 60 - 80

shirayukix
質問者

お礼

ありがとうございます。 NetscapeでclientHeightを使えないことと、 clientHeightでなくscrollHeightを取得する必要がありましたので、 こんなコードになりました。 if (document.height) { // N6 h=document.height; } else if (document.getElementById) { a=document.getElementById('data'); if (a&&a.scrollHeight) { h=a.scrollHeight; } }

その他の回答 (2)

回答No.2

あ、このコード理解するときはComputed Valueって何なのか理解しておくこと! http://www.w3.org/TR/CSS21/cascade.html よりも http://www.w3.org/TR/xsl/#refinement の 説明の方がわかりやすいと思う。

回答No.1

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"> <head> <title>Q3216691 テストケース1</title> <script type="text/javascript"> //自信ないけど function hoge(){ alert(document.getComputedStyle(document.getElementById("fuga"),null).getPropertyValue("height")); } //とか・・・ //ただし、IEにはないので //currentstyleでもどうぞ //http://bmky.net/text/note/javascript-css.html </script> </head> <body> <p id="fuga" onclick="hoge();">あいうえ<br />おかき</p> </body> </html>

shirayukix
質問者

お礼

ありがとうございます。 いろいろな方法があるものですね。

関連するQ&A