Javascript 如果浏览器不在DOM中,它如何知道要渲染什么?

Javascript 如果浏览器不在DOM中,它如何知道要渲染什么?,javascript,dom,extjs,Javascript,Dom,Extjs,我想将ExtJS生成的表单复制到另一个窗口(用于打印),并保留表单值。同样的过程也适用于轴网。但是,当尝试将表单的DOM树复制到另一个窗口时,表单值丢失(其他所有内容都保留下来,只有字段中的值丢失) 因此,现在我试图弄清楚浏览器如何知道将哪个值呈现到哪个字段中,因为该值不会显示在标记中 也许我已经老了,但当我开始开发时,输入字段的每个值都存储在DOM中,如下所示: <input type="text" value="VALUE"> 我已经将整个页面的DOM从浏览器控制台复制到文

我想将ExtJS生成的表单复制到另一个窗口(用于打印),并保留表单值。同样的过程也适用于轴网。但是,当尝试将表单的DOM树复制到另一个窗口时,表单值丢失(其他所有内容都保留下来,只有字段中的值丢失)

因此,现在我试图弄清楚浏览器如何知道将哪个值呈现到哪个字段中,因为该值不会显示在标记中

也许我已经老了,但当我开始开发时,输入字段的每个值都存储在DOM中,如下所示:

<input type="text" value="VALUE">

我已经将整个页面的DOM从浏览器控制台复制到文本编辑器中,并搜索表单值,但它们不在那里,因此我100%确定formpanel之外没有隐藏任何内容,这些内容与绝对位置或任何内容对齐到正确的位置


那么,如果它不在DOM中,浏览器如何知道要呈现什么呢?

这是对您问题的简短回答-所有存储在ExtJS组件(JS对象)和DOM的JS代码中的数据只是它的图形表示,需要时会更新

例如,表单(组件)是一个包含所有必要信息的对象,包括DOM,它不是组件的基础,而只是一个图形表示。当输入数据时,我们会更改组件,并在必要时更改其图形表示。因此,如果我创建类似于中的简单表单,并设置表单项
值:“myName”
,那么在这个DOM中,我可以找到
输入的
属性

<input id="textfield-1010-inputEl" data-ref="inputEl" type="text" size="1" name="name" value="myName" role="textbox" aria-hidden="false" aria-disabled="false" aria-readonly="false" aria-invalid="false" aria-required="false" class="x-form-field x-form-text x-form-text-default " autocomplete="off" data-componentid="textfield-1010">
输入
属性将不会更新,表单项组件也将更新


另外,如果你想确切地知道浏览器如何呈现页面内容,那么它的问题是关于浏览器引擎以及它们如何与JS、HTML等一起工作,你必须阅读文章。

用户在输入字段中输入的值从来没有被
内容属性反映出来。你是如何复制DOM的?
myFormPanel.down('[name=name]').setValue(Math.random());