编辑值之前和之后的Javascript innerHTML

时间:2017-12-10 19:55:42

标签: javascript html innerhtml window.open

我正在尝试在更改值后查询打开的窗口的源代码。 起初我打开一个新窗口并打印出它的源代码。

<html>
<head></head>
<body>
    <script>
        a=window.open("pageOnSameDomain.html");
        a.onload = function() {
            //To test it, i used 'alert' 
            alert(a.document.documentElement.innerHTML);

            //Old value of this field was 'hello'
            a.document.forms[0].inputField.value="aloha";

            //Again used 'alert' to test. But the value is the same as before
            alert(a.document.documentElement.innerHTML);
        }
    </script>
</body>

现在我的问题是,第一个innerHTML的输出与第二个innerHTML函数的输出相同。 但是,如果我尝试准确查询元素的值,我会得到正确的值。

//Here it's 'aloha'
alert(a.document.forms[0].inputField.value);

祝你好运

1 个答案:

答案 0 :(得分:0)

对象(以及这些对象的属性)也存储在内存中。 .innerHTML不是内存中DOM对象的反映,相反,它是已被解析并用作内存中初始 DOM对象的HTML代码。更改属性不会更改.innerHTML

a.document.forms[0].inputField.value="aloha";设置字段的value 属性 ,它不会导致{{1}将 属性 添加到元素中,因此value保持不变,而内存中的DOM已更改。

要更改HTML,您需要使用:

.innerHTML