我正在尝试在更改值后查询打开的窗口的源代码。 起初我打开一个新窗口并打印出它的源代码。
<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);
祝你好运
答案 0 :(得分:0)
对象(以及这些对象的属性)也存储在内存中。 .innerHTML
不是内存中DOM对象的反映,相反,它是已被解析并用作内存中初始 DOM对象的HTML代码。更改属性不会更改.innerHTML
。
a.document.forms[0].inputField.value="aloha";
设置字段的value
属性 ,它不会导致{{1}将 属性 添加到元素中,因此value
保持不变,而内存中的DOM已更改。
要更改HTML,您需要使用:
.innerHTML