导入到新文档中后,<textarea>标记的值将重置为其默认值。

var newDocument = document.implementation.createHTMLDocument('New Document');
var textareaElement = document.getElementById('textarea');
var importedTextareaElement = newDocument.importNode(textareaElement, true);
newDocument.body.appendChild(importedTextareaElement);
console.log(textareaElement.value + ' vs ' + importedTextareaElement.value);

有谁知道为什么会这样吗? <select>标签存在相同的问题。但是,我对<input>标记没有这个问题,它在新文档中保持其值。

我问这个问题是因为我试图保存部分 Activity 的DOM供以后使用。这意味着保留所有元素的状态,例如单选选项,下拉菜单和文本输入字段的值。

最佳答案

我不确定这种情况为什么会发生,但是在浏览器中这种特质是很普遍的。解决它。从您的代码:

 var newDocument = document.implementation.createHTMLDocument('New Document');
 var textareaElement = document.getElementById('textarea');
 var importedTextareaElement = newDocument.importNode(textareaElement, true);
 newDocument.body.appendChild(importedTextareaElement);

做:
 importedTextareaElement.value = textareaElement.value;

我也将对所有其他元素执行此操作,无论您的测试浏览器是否适用于其中某些元素。

09-12 00:59