<iframe name="public"></iframe>
<BR>
<button onclick="test()">test</button>
<SCRIPT LANGUAGE="JavaScript">
<!--
function test()
{
alert( public.name)
alert( frames[0].name)
}
//-->
</SCRIPT>
没有问题啊,我估计又是一个老毛病犯了,你去看看:http://www.csdn.net/expert/topic/793/793333.xml?temp=.8898279
用框架的时候要注意好脚本要控制在框架下载结束后才能访问它里面的元素。

解决方案 »

  1.   

    if (parent.youframe.document.readyState=="complete"){
    ....
    }
      

  2.   

    如果我在隐藏帧中先使用这个语句作为判断再用
    alert(parent.sendMsg.sendForm.autoScroll.checked);应该就好使了吧。
    可是残念,还是同样的问题。
    在main.jsp中也是先使用这个语句作为判断再用
    alert(sendMsg.name)也是不行
      

  3.   

    说错了,在子帧中使用没有问题,但是在父框架中使用还是出现问题。
    我在main.jsp的<head>中使用了,
    if(sendMsg.document.readyState=="complete")
    {
      alert("complete");
    }else
    {
      alert("uncomplete");
    }出现问题是指sendMsg未定义,我将这段代码放在末尾时(</frameset>之后)没有这个错误,不过也未执行这个命令
      

  4.   

    1、不要在head里面自动运行,在head里面定义一个函数,用onload或其他的事件除非来运行可以。
    2、frame跨域了的话不行。看看这个:
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title></title>
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function testComplete()
    {
    try
    {
    alert ((sendMsg2.document.readyState=="complete")?("sendMsg2 complete"):("sendMsg2 uncomplete"));
    alert ((sendMsg1.document.readyState=="complete")?("sendMsg1 complete"):("sendMsg1 uncomplete"));
    }
    catch (e)
    {
    alert(e)
    }
    }
    //-->
    </SCRIPT>
    </head>
    <body onload="testComplete()">
    <iframe name="sendMsg1" src="http://www.csdn.net"></iframe>
    <iframe name="sendMsg2"></iframe>
    </body>
    </html>