プロが教える店舗&オフィスのセキュリティ対策術

過去ログを参照していたら、次のようなサンプルを発見したのですが、
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>

A 回答 (4件)

こんにちは



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>
    • good
    • 0

細かいはなしですがframesetは、片方がきまったら


もう片方は*にするのが妥当です。
"60%,*"とか"40%,*"とか・・・
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/09/13 10:23

#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>
    • good
    • 0

>parent.document.all.tags("frameset")[0]


http://www.tohoho-web.com/js/dom.htm#getElements …

document.all という用法は「IE専用」
    • good
    • 0

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