outputLAYER()
レイヤー内のHTMLをタグごと書き換えるためのサンプルファンクションです。
n4では
writeを使い、
e4,e5,e6,n6,n7,m1,o7,s1では専用のプロパティ
innerHTMLを使って書き換えます。
HTMLをまるごと書き換えできるわけですからこれを使えば、アイディア次第でさまざまな応用が可能になります。
*このファンクションをコピーして<script>と</script>の間にペーストしておくだけでこの機能をクロスブラウザに利用できるようになります。
Cross-Browser のための Sample Function
//--レイヤ−名で処理する場合
Syntax : outputLAYER('レイヤ−名',出力するHTML)
function outputLAYER(layName,html){
if(document.getElementById){ //e5,e6,n6,n7,m1,o7,s1用
document.getElementById(layName).innerHTML=html
} else if(document.all){ //e4用
document.all(layName).innerHTML=html
} else if(document.layers) { //n4用
with(document.layers[layName].document){
open()
write(html)
close()
}
}
}
Example
<script type='text/javascript'>
<!--
function outputLAYER(layName,html){
if(document.getElementById){ //e5,e6,n6,n7,m1,o7,s1用
document.getElementById(layName).innerHTML=html
} else if(document.all){ //e4用
document.all(layName).innerHTML=html
} else if(document.layers) { //n4用
with(document.layers[layName].document){
open()
write(html)
close()
}
}
}
//-->
</script>
<!--↓このレイヤ−上のリンクをクリックすると変わります///////////-->
<div id="test"
style="position : absolute ;
left : 10px ;
top : 10px ;">
<a href="javascript:outputLAYER('test','<H1>ばあ(^0^)</H1>')">
クリックするとこのレイヤー内のHTMLが書き変わります
</a>
</div>
//--オブジェクト名で処理する場合
上記の関数をレイヤー名の代わりにオブジェクトで処理するようにしたもの。
ブラウザ毎の実装オブジェクト処理が別立てになるので関数がシンプルになる。
Syntax : outputLAYERoj(オブジェクト,出力するHTML)
function outputLAYERoj(oj,html){
if(document.getElementById) //n6,n7,m1,e5,e6,o7(o6不可),s1用
oj.innerHTML=html
else if(document.all) //e4用
oj.parent.innerHTML=html
else if(document.layers) //n4用
with(oj.document){
open()
write(html)
close()
}
}
Example
<script type='text/javascript'>
<!--
function outputLAYERoj(oj,html){
if(document.getElementById) //n6,n7,m1,e5,e6,o7(o6不可),s1用
oj.innerHTML=html
else if(document.all) //e4用
oj.parent.innerHTML=html
else if(document.layers) //n4用
with(oj.document){
open()
write(html)
close()
}
}
//--レイヤーオブジェクトをセットする( 必ずonload後に実行すること )
//outputLAYER用はgetLayStyleOj()と違って.styleがつかないことに注意
function getLayOj(layName){
if(document.getElementById) //e5,e6,n6,m1,o6,o7,s1用
return document.getElementById(layName)
else if(document.all)
return document.all(layName) //e4用
else if(document.layers)
return document.layers[layName] //n4用
}
//-->
</script>
<!--↓このレイヤ−上のリンクをクリックすると変わります////////////-->
<div id="test"
style="position : absolute ;
left : 10px ;
top : 10px ;">
<a href="javascript:outputLAYERoj(getLayOj('test'),'<H1>ばあ(^0^)</H1>')">
クリックするとこのレイヤー内のHTMLが書き変わります
</a>
</div>