FlyPig

if{}else if{}生活只有一个分支
posts - 11, comments - 9, trackbacks - 0, articles - 4
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

从一个框架页向另一个框架页写内容

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加载完毕没,完毕后才写.非常感谢他的帮助.


只有注册用户登录后才能发表评论。


网站导航: