2009-12-25 88 views
0

我從一個所見即所得編輯器中獲取對DOM元素的引用。確定一個DOM元素的文檔?

我不明白JS或所見即所得的編輯器(CKEditor),但它似乎是一種指針或其他直接引用駐留在所見即所得編輯器中的IFRAME中的實際元素。至少,當我使用console.log這個元素時,我會得到一個鏈接,當點擊它時,它會打開Firebug中的實際元素。

有沒有辦法在IFRAME中獲得對該元素的document對象的引用?

回答

3

如果你有DOM元素的引用,你可以使用ownerDocument屬性:

var ownerDoc = someElement.ownerDocument; 
+0

+1快速手指男人:) – gnarf 2009-12-25 20:02:26

+0

工作,謝謝。 – 2009-12-25 20:04:57

+0

不客氣@Pekka,它可以在大多數瀏覽器上沒有問題... http://www.quirksmode.org/dom/w3c_core.html – CMS 2009-12-25 20:06:20

1

我不知道具體的編輯器,但如果它有一個合理的正常開展的DOM,每個節點(包括您獲取引用的DOM元素)具有引用其父節點的parentNode只讀屬性。按照parentNode引用鏈,您將在DOM樹中向上移動,並最終應達到您想要的document

(該ownerDocument財產提供了一個更直接的解決方案,但它並沒有在一些老的瀏覽器如IE 5.5的支持 - 如果你不擔心這樣的「考古」的問題,這很好,但parentNode作品甚至更廣泛地)。

+0

乾杯亞歷克斯,以及非常好的附加信息。我可以假設IE> 6,所以ownerDocument會爲我做。我會贊成這個,但今天已經沒有選票了。 – 2009-12-25 20:24:45

+0

@Pekka,NP,在任何情況下,我都會被罰款一天;-)。是的,大多數人不必擔心IE <6了(擔心IE6在一般情況下已經夠糟糕了;-),但是不知道那個編輯器我認爲它的DOM可能是基於古老的瀏覽器,所以我提供了「堅如磐石」的解決方案以防萬一;-) – 2009-12-25 20:38:13

相關問題