- ベストアンサー
縦スクロールバーが表示されないようにする
iframeで表示されるサイトの内容によってHTMLの表示サイズを変更しないのですが、 javascriptをどのように記述すればいいのでしょうか? つまり、縦スクロールバーが表示されないようにする。 普通にscrolling = "no"と記述すると、 サイトの下側は表示されなくなってしまうので。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは 質問内容がよくわかりませんが・・・ >縦スクロールバーが表示されないように >scrolling = "no"と記述すると、サイトの下側は表示されない から推測するにiframeの中身によってiframeのサイズを変更するということですか? prototype.jsをダウンロードして http://www.prototypejs.org/download <script type="text/javascript" src="./prototype.js"></script> <script language="javascript"><!-- window.onload=function() { obj = document.getElementById("ifr"); html = ifr.document.body.innerHTML; document.getElementById("preshow").innerHTML = html; var item = $('preshow'); var ret = Element.getDimensions(item); obj.style.width = ret.width + 50 + "px"; obj.style.height = ret.height + 50 + "px"; obj.style.visibility = "visible"; } //--></script> <iframe src="***.html" name="ifr" id="ifr" style="visibility:hidden;"></iframe> <div id="preshow" style="display:none;"></div>
その他の回答 (2)
- steel_gray
- ベストアンサー率66% (1052/1578)
#2です。 別サイト…正確にはドメインの異なるページです。 Javascriptはセキュリティ上の理由により、他のドメインにあるページを参照したり変更したりできないようになっています。 (iframeで表示するだけならもちろん可能) 他に、というとCGIで対象のページ全体を読み込んでしまって、同じサイト内のページとして表示するなら#2のjavascriptの実行も可能ですが… 画像や諸々のURLの調整だとか面倒そうだし、そのページの内容によっては機能が制限される可能性もありますのであまりお勧めできません。 他のサイトというのが他者の管理するものなら許諾を得ておく必要もあると思います。(フレーム内への読み込みはコンテンツの提供者を不明瞭にしますから。)
- steel_gray
- ベストアンサー率66% (1052/1578)
サンプルです。 (なお、iframe内に読み込むファイルが別サイトならJavascriptでは操作できません) <script type="text/javascript"> function sample(o){ o.height = 1; var oDoc = o.contentWindow.document; o.height = Math.max(oDoc.getElementsByTagName('html')[0].scrollHeight, oDoc.body.scrollHeight) +4; //+4の根拠なし。もしスクロールバーが出るなら増やして。 } </script> <iframe src="~~" width="~~" height="~~" onload="sample(this)"></iframe>
補足
え?? 別サイトならJavascriptでは表示できないんですか!? 別サイトを表示したいのですが、Javascript以外でも結構ですので、 何かいい方法はありますでしょうか? よろしくお願いします。