导入到新文档中后,<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;
我也将对所有其他元素执行此操作,无论您的测试浏览器是否适用于其中某些元素。