为什么导入到另一个文档时<textarea>的值会重置?</textarea>

时间:2013-09-21 17:18:03

标签: javascript html

导入新文档时,<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供以后使用。这意味着保留所有元素的状态,例如无线电选择,下拉菜单和文本输入字段的值。

1 个答案:

答案 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;

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