这是一个罗嗦的问题,所以我会尝试尽可能具体。
我在两个独立的容器中有两个所见即所得的文本编辑器。在on <a>
标签上运行的函数中,一个容器向上滑动并插入另一个容器之前。这导致所见即所得盒完全破坏,因此我将其删除然后重新初始化。我遇到的问题是获取其中的内容。
这是wysiwyg的HTML结构:
<div class="rightFieldContainer">
<div class="wysiwyg" style="...">
<ul class="panel" role="menu">...</ul>
<div style="clear: both;">...</div>
<iframe frameborder="0" style="..." tabindex="0">
<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>...</head>
<body style="..." class="wysiwyg">
<b _moz_dirty="">WHAT I'M TRYING TO GET</b></strike><br>
</body>
</html>
<iframe>
... (all remaining tags are closed)
内容的路径是我的函数指定如下:
var content = $("#someContainer1").find(".rightFieldContainer").children(" .wysiwyg").children()[2].contentWindow.document.body.innerHTML;
使用innerHTML返回空白,html返回undefined。更令人好奇的是,如果我使用相同/相似的路径来获取另一个永远不会被移动的文本框的内容,它就可以正常工作。
我理解,由于问题本身有点模糊,所以不可能希望得到一个明确的答案,但只是替代innerHTML或者它可能不起作用的理由。感谢。
答案 0 :(得分:0)
您是否尝试过其他选择器来确保拉动iframe的主体?
var content = $("#someContainer1").find(".rightFieldContainer > div.wyiswyg > iframe body.wysiwyg").html();
答案 1 :(得分:0)
iframe中的内容无法使用父文档中的选择器进行导航。要获取iframe的文档,您需要执行以下操作:
$("#someContainer1").find(".rightFieldContainer").children("iframe").contents();
.contents()
获取iframe的文档,以便您可以从父页面中查找内容,假设iframe的内容位于同一个域中。
var content = $("#someContainer1").find(".rightFieldContainer").children("iframe").contents().find(".wysiwyg").html();
为了简化这一点,你应该给你的iframe一个类/ id并直接选择它:
var content = $("#someContainer1").find("#youriframe").contents().find(".wysiwyg").html();