2014-09-29 187 views
4

在我正在开发的一个项目中,我有一个HTML文档是通过应用程序生成的,后来传递给一个将HTML转换为PDF的函数。从Shadow DOM获取元素

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

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

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

我没有做任何明确地将内容放在那里,但使用Firebug和WebInspector我可以看到它作为阴影内容。

+0

Firebug?但是在Firefox中,默认情况下shadow DOM没有启用。 http://caniuse.com/#feat=shadowdom – Paleo 2014-09-30 10:33:15

回答

2

你可以得到<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中读取输入。它是什么库?

+0

这与之前获得的结果相同。我正在使用jQuery。当我到我的办公室时,我会发布更具体的信息。 – hedrick 2014-09-30 13:57:41

+0

这最终成为了解如何生成HTML的一些改变(将textarea属性直接指向所需的脚本)。这就是我尝试将HTML嵌入到Objective-C中以获得文本格式的原因:\ – hedrick 2014-09-30 19:42:32