2

これは冗長な問題なので、できるだけ具体的に説明します。

2 つの別々のコンテナー内に保持されている 2 つの wysiwyg テキスト エディターがあります。タグの onclick で実行される関数では<a>、一方のコンテナがスライドして、もう一方のコンテナの前に挿入されます。これにより、wysiwyg ボックスが完全に壊れてしまうので、それを削除してから再初期化します。私が抱えている問題は、その中のコンテンツを取得することです。

これは 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)

The path to content is my function は次のように指定されています。

     var content = $("#someContainer1").find(".rightFieldContainer").children(" .wysiwyg").children()[2].contentWindow.document.body.innerHTML;

innerHTML を使用すると空白が返され、html は undefined が返されます。さらに興味深いのは、同じ/類似のパスを使用して、移動することを意図していない別のテキストボックスのコンテンツを取得すると、正常に機能することです。

問題自体が少し漠然としているため、明確な答えを期待することは不可能であることは理解していますが、innerHTML の代替または機能しない理由を教えてください。ありがとう。

4

2 に答える 2

0

iframeの本体を引っ張っていることを確認するために、別のセレクターを試しましたか?

var content = $("#someContainer1").find(".rightFieldContainer > div.wyiswyg > iframe body.wysiwyg").html();
于 2012-06-18T14:34:44.510 に答える
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();
于 2012-06-18T14:41:04.077 に答える