ハマっている「お菓子」を教えて!

iframeで表示されるサイトの内容によってHTMLの表示サイズを変更しないのですが、
javascriptをどのように記述すればいいのでしょうか?

つまり、縦スクロールバーが表示されないようにする。
普通にscrolling = "no"と記述すると、
サイトの下側は表示されなくなってしまうので。

A 回答 (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>
    • good
    • 0

#2です。


別サイト…正確にはドメインの異なるページです。
Javascriptはセキュリティ上の理由により、他のドメインにあるページを参照したり変更したりできないようになっています。
(iframeで表示するだけならもちろん可能)

他に、というとCGIで対象のページ全体を読み込んでしまって、同じサイト内のページとして表示するなら#2のjavascriptの実行も可能ですが…
画像や諸々のURLの調整だとか面倒そうだし、そのページの内容によっては機能が制限される可能性もありますのであまりお勧めできません。

他のサイトというのが他者の管理するものなら許諾を得ておく必要もあると思います。(フレーム内への読み込みはコンテンツの提供者を不明瞭にしますから。)
    • good
    • 0

サンプルです。


(なお、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以外でも結構ですので、
何かいい方法はありますでしょうか?


よろしくお願いします。

補足日時:2007/09/17 17:28
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!