0

現在、Web サイトで AJAX 関連の問題に取り組んでいます。
目標は次のとおりです
。いくつかのリンクとコンテンツを含む「単純な」HTML ページがあります。

リンクをクリックすると、ページにオーバーレイされた新しいdiv内に(hrefから)リンクが含まれるファイルを開きたいと思います。もちろん、ページのコンテンツは AJAX で新しい div (オーバーレイされたもの) に読み込まれます。

この新しいオーバーレイされた div 内に、一般的には既に機能している JS コードを追加したいと考えています。
とにかく問題は、私の特定のケースでは、AJAX ごとにロードされたページ内の DOM 要素に快適な方法でアクセスできないことです。これまでのところ、次のコードを取得しました。

$$('.add-exercise').addEvent('click', function(e) {
        var request_exercise_add = new Request.HTML({
            'method' : 'post',
            'url' : e.target.get('href'),

            onSuccess : function(responseTree, responseElements, responseHTML, responseJavaScript) {
            // i know i can access responseElements here..
            }
        });

        request_exercise_add.send('s=true');

        return false;
    });

responseElements 内で返される要素にアクセスできることはわかっていますが、組み込まれている Web サイトのロジックは非常に複雑であるため、動的に読み込まれるページの HTML コード内に JS を追加できるはずです。headDOM-ready イベントの後にロードされる要素を認識できないため、JS もセクションに追加できないことに注意してください。

4

2 に答える 2

1

iframe を試しましたか?または、追加しようとしている Web サイトに PPP Cookie と AllowContentInIframe がありません。

于 2013-08-20T20:49:14.457 に答える
0

必要な ajax リクエスト内にスクリプトを追加する場合は、リクエストオプションevalScripts: trueを囲む引用符を削除する必要があります。

$$('.add-exercise').addEvent('click', function (e) {
    var request_exercise_add = new Request.HTML({
        method: 'post',
        url: e.target.get('href'),
        evalScripts: true,
        onSuccess: function (responseTree, responseElements, responseHTML, responseJavaScript) {
            // i know i can access responseElements here..
        }
    });
    request_exercise_add.send('s=true');
    return false;
});

応答の内容はわかりませんが、 新しい要素を追加する代わりにMootools の.set()innerHTMLを使用することもできます (まだ行っていない場合)。それについては、ここでDimitarの回答を確認する価値があります。

于 2013-08-20T22:11:12.370 に答える