- ベストアンサー
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; }
- みんなの回答 (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
その他の回答 (2)
- himajin100000
- ベストアンサー率54% (1660/3060)
あ、このコード理解するときはComputed Valueって何なのか理解しておくこと! http://www.w3.org/TR/CSS21/cascade.html よりも http://www.w3.org/TR/xsl/#refinement の 説明の方がわかりやすいと思う。
- himajin100000
- ベストアンサー率54% (1660/3060)
<!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>
お礼
ありがとうございます。 いろいろな方法があるものですね。
お礼
ありがとうございます。 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; } }