0

AJAX を使用するのはこれが初めてです。リンクがクリックされたときにページの 1 つをロードしようとしています (実行できることはわかっています<a href="something.html">が、AJAX を使用するためだけに実行していて、ページがロードされるがページの JavaScript がロードされるという問題に遭遇しました)。これは通常の AJAX の結果ですか?私はそれが関係していると思いdataType: htmlますか?私のコードは次のとおりです:

function getContent(filename) {
    $.ajax({
        url: filename,
        type: "GET",
        dataType: "html",
        beforeSend: function(){
            $('html').html('<img src="../images/loading.gif">');
        },
        success: function (data, textStatus, xhr) {
            if (filename == "second.html") {
                setTimeout(function (){
                    $('html').html(data);
                }, 2000);
            } else {
                $('html').html(data);
            }
        },
        error: function(xhr, textStatus, errorThrown) {
            $('html').html(textStatus);
        }
    });
}
4

2 に答える 2

0

Chromeのネットワークモニターを確認できますか?まず、404を取得するものはありますか?ファイルは文字通りsecond.htmlですか?もしそうなら、パスの問題はないはずです。次に、そのアイテムに表示される「応答」は何ですか?その応答は大丈夫ですか?

次に、2ページ目でJSを頭から体に動かしてみませんか?JSは、パフォーマンス上の理由から、常に終了bodyタグの直前に配置する必要があります。また、JSが頭にあり、そのために実行されないという問題がある可能性があります。

AJAXを介して問題なくドメインに何でもロードできるはずですが、注意すべきパスの問題があります。

于 2012-08-31T00:50:37.083 に答える
0

これは、ajax ページがレンダリングされたコンテンツのみを返し、通常のページのように動作しないためです。たとえば、ajaxページでPHPを使用できます。サーバーはそれをレンダリングしてから送信します.PHPは事前レンダリングされているため、私が知る限り、ページがレンダリングされた後にjavascriptが実行されます.

于 2012-08-30T22:18:06.263 に答える