0

私は次の問題に直面しています:

index.htmlページにdiv#contentがあります。このdiv内で、jsを介してページをロードします

//JavaScript Document
$(document).ready(function() {
    $('#loader').load('pages/loader.php').hide();
    $('#content_container').load('pages/dashboard.php');
    //$('.dashboard_quick_news').load('pages/quicknews.php');
});

$('.content_link').click(function(){
    var href = $(this).attr('href');
    $('#loader').show();
    $('#content_container').hide().load(href).delay(1800).fadeIn('normal');
    $('#loader').load('pages/loader.php').delay(1000).fadeOut();
    return false;   

});

これですべて正常に機能し、読み込まれたページが正常に表示されます。ロードされたページの1つに、wysiwyエディター(Nicedit)を含めましたが

<script type="text/javascript" src="../../nicedit/nicEdit.js"></script>
        <script type="text/javascript">
            bkLib.onDomLoaded(function() { nicEditors.allTextAreas() });
        </script>

インデックスを介して(.load関数を使用して)このページをロードすると、wysiwygエディターが表示されません(TinyMCEでもテスト済み)。スタンドアロンのページに(URL経由で)アクセスすると、wysiwygエディターが完全に表示されるため、パスが正しく設定されます。また、私のインデックスに含まれているwysiwygjsでテストしました

.loadページにjavascriptが含まれていないかどうかをテストするために、wysiwygエディターを使用してページにアラートを挿入しました。このアラートは表示されますが、wysiwygエディターには表示されません。

誰かがこの問題を解決する方法を知っていますか?

よろしくお願いします

4

1 に答える 1

0

結果のDOMをチェックして、エディターのマークアップがページに添付されているかどうかを確認しましたか?

これらのWYSIWYGエディターのほとんど(すべて?)はiframeを使用しています。サイズをどのように決定するかはわかりませんが、テキストエリアをパラメータとして送信するため、そのテキストエリアのサイズを使用していると思います。したがって、textareaのサイズが十分に大きいことを確認し、挿入されたiframeが十分に大きいことを確認してください。

編集:

エディターが開始されたときにテキストエリアがどこにあるかを知らずに問題を特定することは困難です(コードを増やしてください)。

問題は、DOMがロードされた瞬間に実行されるbkLib.onDomLoadedにあると思います。ただし、jQueryのready()は(ほぼ)同じことを行います。したがって、load()を呼び出してページのコンテンツを取得すると、DOMはすでにロードされているため、bkLib.onDomLoadedは実行されません。

代わりに行う必要があるのは、要求された.phpページがロードされた後にエディターをインスタンス化することです。

$('#content_container').load('pageWithEditorScript.php', function() {
    nicEditors.allTextAreas();
});
于 2012-08-25T20:15:44.460 に答える