• ベストアンサー

フレームサイズの変更について

過去ログを参照していたら、次のようなサンプルを発見したのですが、 IEでは動作しますが、FireFoxではエラーになってしまいます。 どこを修正すれば動くようになるでしょうか? ■frame.html■ <html> <head><title></title> <script language="javascript"> <!-- document.write(frset('40%','60%','a.htm?','1.htm?')) function frset(a,b,f1,f2){ var frset= '<title>frame</title>\n' +'<frameset cols="'+a+','+b+'">\n' +'<frame src="'+f1+'">\n' +'<frame src="'+f2+'">\n' +'</frameset>\n' return frset } //--> </script> </head> </html> ■a.html■ <html> <head><title></title> </head> <body> 右のリンクで<br>フレームのサイズ<br>が変わるよ! </body> </html> ■1.html■ <html> <head><title></title> <script language="javascript"> <!-- function chsize(a,b){ if(location.search==""){ if(document.all){ parent.document.all.tags("frameset")[0].cols=a+","+b }else{ //parent.document.open() parent.document.write(frset(a,b,parent.frames[0].location.href+"?",parent.frames[1].location.href+"?")) parent.document.close() } } } //--> </script> </head> <body onload="chsize('40%','60%')"> こっち側60%です。 <br> <a href="2.htm">こっち側を40%にする!</a> </body> </html> ■2.html■ <html> <head><title></title> <script language="javascript"> <!-- function chsize(a,b){ if(location.search==""){ if(document.all){ parent.document.all.tags("frameset")[0].cols=a+","+b }else{ //parent.document.open() parent.document.write(frset(a,b,parent.frames[0].location.href+"?",parent.frames[1].location.href+"?")) parent.document.close() } } } //--> </script> </head> <body onload="chsize('60%','40%')"> <a href="1.htm">こっち側を60%にする!</a> <br> こっち側40%です。 </body> </html>

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

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

こんにちは frame.htmlもjavascriptで書いてるけど特別な意味が? サイズチェンジならこれでできると思います "40%,60%"を変更 <script language="javascript"><!-- function sizech() { parent.document.getElementsByTagName("frameset")[0].cols = "40%,60%"; } //--></script> <a href="***.html" onClick="sizech()">framesize change</a>

その他の回答 (3)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.4

細かいはなしですがframesetは、片方がきまったら もう片方は*にするのが妥当です。 "60%,*"とか"40%,*"とか・・・

w0a15455
質問者

お礼

問題解決です。 助かりました。 みなさんありがとうございました。

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

#2です すみません。ちょっと修正(><) body onloadだから表示したときに変更ですね・・・ 【frame.html】 <frameset cols="40%,60%"> <frame src="a.html"> <frame src="1.html"> </frameset> 【1.html】 <script language="javascript"><!-- window.onload=function() { parent.document.getElementsByTagName("frameset")[0].cols = "40%,60%"; } //--></script> 【2.html】 <script language="javascript"><!-- window.onload=function() { parent.document.getElementsByTagName("frameset")[0].cols = "60%,40%"; } //--></script>

noname#39970
noname#39970
回答No.1

>parent.document.all.tags("frameset")[0] http://www.tohoho-web.com/js/dom.htm#getElementsByTagName document.all という用法は「IE専用」

関連するQ&A

専門家に質問してみよう