Posted on 2005-06-16 22:40
FlyPig Lin 阅读(324)
评论(0) 编辑 收藏 所属分类:
脚本
今天做了一个例子,是在一个框架页里面写另外两个框架页的内容,框架页是这样的:
frame.html:
<frameset rows="15%,*" cols="*" framespacing="0" frameborder="1" id="out">
<frame src="top.html" name="topFrame" scrolling="no" frameborder="1">
<frameset rows="*" cols="20%,*" framespacing="0" frameborder="1" id="in">
<frame src="left.html" name="leftFrame" scrolling="no" >
<frame src="right.html" name="rightFrame" scrolling="no" >
frameset>
frameset>
其中top.html内容是:
<html>
<head>tophead>
<body onLoad="alert('top load finish');">
<script>
function writeFrame(frameName,content){
if(parent.frames[frameName].document != null){
if(parent.frames[frameName].document.body != null){
parent.frames[frameName].document.body.innerHTML = content;
}else{
window.setTimeout("writeFrame('"+frameName+"','"+content+"')",1000);
}
}else{
window.setTimeout("writeFrame('"+frameName+"','"+content+"')",1000);
}
}
function writeFrameDirect(frameName,content){
if(parent.frames[frameName].document != null)
if(parent.frames[frameName].document.body != null)
parent.frames[frameName].document.body.innerHTML = content;
}
function a(){
writeFrame('leftFrame','top write left');
writeFrame('rightFrame','top write right');
}
function b(){
writeFrameDirect('leftFrame','top write left');
writeFrameDirect('rightFrame','top write right');
}
a();
//b();
script>
body>
html>
left.html内容是:
<html>
<head>head>
<body onLoad="alert('left load finish');">
body>
html>
right.html内容是:
<html>
<head>head>
<body onLoad="alert('right load finish');">
body>
html>
虽然明明框架页onLoad的时候可以看出顺序是:left,right,top.可是在top里面如果调用方法b()而不调用方法a(),那从top往left和right写东西都是不起作用的.很奇怪哪.今天做一个菜单就是遇到这个问题.我要从top往left写二级菜单的内容,可是调用b()却写不成,还好宝玉教了我writeFrame的方法.用setTimeout定时去查left或right加载完毕没,完毕后才写.非常感谢他的帮助.