2009-12-25 54 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

相关问题