因为_1Test.htm的按钮调用的是iframe中定义的AIT(),不能直接写javascript:AIT(),而_2Test.htm则调用的是本页的

解决方案 »

  1.   

    我作了一下测试,
    <script language="javascript">
    function AIT()
    {
    alert('hello!');
    }
    </script>
    这段话没加到_1Test.htm中所以提示缺少对象。
    测试内容如下
    _1Test.htm
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>无标题文档</title>
    </head><body>
    <input type="button" name="Submit" value="按钮" onClick="alert( document.body.innerHTML);">
    <span id="ShowIt" name="ShowIt"></span>
    <iframe src="_2Test.htm" height="300" width="100%"></iframe>
    </body>
    </html>_2Test.htm
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <title>无标题文档</title>
    </head><body>
    <script language="javascript">
    function AIT()
    {
    parent.document.all("ShowIt").innerHTML = document.body.innerHTML;
    }
    </script>
    <input type="button" name="Submit" value="按钮" onClick="javascript:AIT()">
    </body>
    <script language="javascript">

    alert( document.body.innerHTML);
    </script>
    </html>解决方法最简单的把这段代码加到_1Test.htm中即可。
      

  2.   

    同意上面的说法。_1Test.htm是因为找不到调用的AIT()函数,因为它在_2Test.htm页面中。
      

  3.   

    可是如果我修改_2Test.htm中的
    <script language="javascript">
    parent.document.all("ShowIt").innerHTML = document.body.innerHTML;
    </script>
    脚本为
    <script language="javascript">
    parent.document.all("ShowIt").innerHTML = document.body.innerHTML;
             alert(parent.document.all("ShowIt").innerHTML);
    </script>
    照样能够看得到parent.document.all("ShowIt").innerHTML里头有AIT()这一段函数的代码啊?