2014-09-29 185 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