从Shadow DOM获取元素
问题描述:
在我正在开发的一个项目中,我有一个HTML文档是通过应用程序生成的,后来传递给一个将HTML转换为PDF的函数。从Shadow DOM获取元素
在HTML中,我有textareas来显示可编辑的信息。当用户编辑textarea中当前的信息时,我想保存这些信息,以便当它传递给PDF生成器时,它是最新版本的DOM。
经过一些测试后,我发现textarea内容的编辑版本在Shadow DOM中。
有没有办法获得该内容并将其放入实际的DOM?
我没有做任何明确地将内容放在那里,但使用Firebug和WebInspector我可以看到它作为阴影内容。
答
你可以得到<textarea>
的value
属性的当前值,并把它在DOM通过其.textContent
属性:
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中读取输入。它是什么库?
Firebug?但是在Firefox中,默认情况下shadow DOM没有启用。 http://caniuse.com/#feat=shadowdom – Paleo 2014-09-30 10:33:15