jquery - innerHTML 返回空白?

标签 jquery wysiwyg innerhtml

这是一个冗长的问题,所以我会尝试尽可能具体。

我有两个所见即所得文本编辑器,位于两个单独的容器中。在 <a> 的 onclick 上运行的函数中标签时,一个容器会向上滑动并插入到另一个容器之前。这会导致所见即所得框完全损坏,因此我将其删除,然后重新初始化它。我遇到的问题是获取其中的内容。

这是所见即所得的 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 返回未定义。更好奇的是,如果我使用相同/相似的路径来获取另一个永远不会移动的文本框的内容,它工作得很好。

我知道不可能希望得到一个明确的答案,因为问题本身有点模糊,但只是innerHTML的替代方案或它可能不起作用的原因值得赞赏。谢谢。

最佳答案

无法使用父文档中的选择器来导航 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();

关于jquery - innerHTML 返回空白?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11084923/

相关文章:

jquery - 在类似向导的流程中加载 HTML 和绑定(bind) View 模式的有效方法

javascript - 如何从jquery日期和时间选择器中选择和显示数据

javascript,循环字段和验证

javascript - 如何在所见即所得编辑器中清理 HTML 粘贴内容

.net - 将 html 标记转换为有效 XML 的脚本

javascript - Raphael js-onclick 改变颜色的 Action ?保持那个颜色直到返回点击其他

javascript - 如何为 Quill 内容定义布局?

javascript - 设置 iframe 的innerHTML

javascript - 如何检索页面部分的 html 和样式?

javascript - javascript 中的变量未使用innerHTML 显示在html 页面上