从Shadow DOM获取元素

时间:2014-09-29 16:42:42

标签: javascript jquery html dom shadow-dom

在我正在处理的项目中,我有一个HTML文档,它是通过应用程序生成的,后来传递给将HTML转换为PDF的函数。

在HTML中我有textareas来显示可编辑的信息。当用户编辑当前在textarea中的信息时,我想保存该信息,以便在将其传递给PDF生成器时,它是DOM的最新版本。

经过一些测试后,我发现textarea内容的编辑版本在Shadow DOM中。

有没有办法获取该内容并将其放入实际的DOM?

我没有做任何明确将内容放在那里的内容,但是使用Firebug和WebInspector我可以将其视为影子内容。

1 个答案:

答案 0 :(得分:2)

您可以使用<textarea>的{​​{3}}属性获取当前值,并通过其value属性将其放入DOM中:

function f() {
  var t = document.getElementById('t');
  t.textContent = t.value;
  alert("The resulting DOM is: " + t.parentNode.innerHTML);
}
<div>
  <textarea id = "t">test</textarea>
</div>
<button onclick="f()">click</button>

...假设你调用的函数确实从页面的DOM中读取了它的输入。它是什么图书馆?