我从一个所见即所得编辑器中获取对DOM元素的引用。确定一个DOM元素的文档?
我不明白JS或所见即所得的编辑器(CKEditor),但它似乎是一种指针或其他直接引用驻留在所见即所得编辑器中的IFRAME中的实际元素。至少,当我使用console.log
这个元素时,我会得到一个链接,当点击它时,它会打开Firebug中的实际元素。
有没有办法在IFRAME中获得对该元素的document
对象的引用?
我从一个所见即所得编辑器中获取对DOM元素的引用。确定一个DOM元素的文档?
我不明白JS或所见即所得的编辑器(CKEditor),但它似乎是一种指针或其他直接引用驻留在所见即所得编辑器中的IFRAME中的实际元素。至少,当我使用console.log
这个元素时,我会得到一个链接,当点击它时,它会打开Firebug中的实际元素。
有没有办法在IFRAME中获得对该元素的document
对象的引用?
如果你有DOM元素的引用,你可以使用ownerDocument
属性:
var ownerDoc = someElement.ownerDocument;
我不知道具体的编辑器,但如果它有一个合理的正常开展的DOM,每个节点(包括您获取引用的DOM元素)具有引用其父节点的parentNode
只读属性。按照parentNode
引用链,您将在DOM树中向上移动,并最终应达到您想要的document
。
(该ownerDocument
财产提供了一个更直接的解决方案,但它并没有在一些老的浏览器如IE 5.5的支持 - 如果你不担心这样的“考古”的问题,这很好,但parentNode
作品甚至更广泛地)。
干杯亚历克斯,以及非常好的附加信息。我可以假设IE> 6,所以ownerDocument会为我做。我会赞成这个,但今天已经没有选票了。 – 2009-12-25 20:24:45
@Pekka,NP,在任何情况下,我都会被罚款一天;-)。是的,大多数人不必担心IE <6了(担心IE6在一般情况下已经够糟糕了;-),但是不知道那个编辑器我认为它的DOM可能是基于古老的浏览器,所以我提供了“坚如磐石”的解决方案以防万一;-) – 2009-12-25 20:38:13
+1快速手指男人:) – gnarf 2009-12-25 20:02:26
工作,谢谢。 – 2009-12-25 20:04:57
不客气@Pekka,它可以在大多数浏览器上没有问题... http://www.quirksmode.org/dom/w3c_core.html – CMS 2009-12-25 20:06:20