<html>
<head>
<script language="javascript">
function Update() {
document.write('<script language="javascript">');
document.write(' function Update() {');
document.write(' document.write("inner");');
document.write(' }');
document.write('</scr' + 'ipt>');
document.write('<input type="button" onclick="Update()" value="UPDATE"><br>');
//document.close();
}
    </script>
</head>
<body onLoad="Update();">
<p>test</p>
</body>
</html>
问题是这样的
运行后,不注释那段inner会在UPDATE按钮下面显示,说明原页面中Update()方法的document和打印后Update()中的document对象是同一个,但是,为什么?在第一个页面加载后调用Update()方法打印了那段代码后,那段代码所在的文档不应该也是被加载完成,而按下UPDATE按钮后之后的Update()方法中的document将会是一个新对象啊?

解决方案 »

  1.   

    不对。你js里面的Update()方法无论怎么调用,你都是在一个页面里面进行的,并没有发生跳转。那么,你的document就是一个。你应该去看看DOM树的基础。HTML的最顶端就是document对象。
    === 结贴,给分 ===
    得到满意的答案,立即结贴给分,是一种良好的习惯和美德
      

  2.   

    没明白您的意思。
    在JS中的那个document输出以后产生的新文档中包括了一段JS和一个按钮,然后是在这个新文档中按的按钮和以下这种情况不应该一样吗?<html>
    <head>
    <script language="javascript">
    function Update() {
    document.write("inner");
    }
        </script>
    </head>
    <body>
    <input type="button" onclick="Update()" value="UPDATE"><br>
    </body>
    </html>