导入新文档时,<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>
标记没有此问题,这些标记会在新文档中保留其值。
我问这个问题,因为我试图保存部分活动DOM供以后使用。这意味着保留所有元素的状态,例如无线电选择,下拉菜单和文本输入字段的值。
答案 0 :(得分:0)
我不确定“为什么”这种情况正在发生,但在浏览器中这样的特殊情况很常见。解决它。从你的代码:
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;
我也会对所有其他元素执行此操作,无论您的测试浏览器是否适用于其中一些元素。