1

jQuery の .load() 関数を使用して、リモートで読み込まれた (挿入された) HTML ファイル内のいくつかの JavaScript ファイルを参照しようとしています。読み込まれた HTML ファイルで使用しようとしている JavaScript ファイルは、読み込まれた HTML の親 HTML ページに既に含まれています。

当初、読み込んだ HTML 内でこれらのファイルへの参照を作成すると、ページに含まれているので問題なく動作すると思っていましたが、動作していないようです。

注入された HTML ファイルで JavaScript を使用する方法を誰か教えてもらえますか?

4

4 に答える 4

1

私が正しく理解していれば、使用する必要があるようですgetScript()-これは、HTTPGETリクエストを使用してローカルJavaScriptファイルをロードして実行します。

$.getScript( url, [callback] ) 
于 2009-06-03T22:12:34.070 に答える
0
  1. test1.htm に次のものが含まれている場合:

    $(document).ready(function() { $('.main').load('test2.htm', function() { $('.result').text('ページを取得しました'); } ); });

  2. そして test2.html には以下が含まれます: < script type="text/javascript" src="exscript.js"></ script >

ドキュメントの頭に。

  1. exscript.js には以下が含まれます。

    アラート('こんにちは');

test1.htm をロードすると、警告が表示されます。さよなら!:)

于 2009-06-07T21:50:01.500 に答える
0

スクリプト要素がロードされた html の一部である場合は、それを本文に追加するだけで機能します。

例:

$.ajax({
    //...
    //...
    success: function(response) {
        // assuming response is a full HTML page
        var r = $(response);
        // append your content
        $("#someContainer").append($("#someContent", r));
        // append the scripts
        $("body").append($("script", r));
    }
    //...
    //...
});

もちろん、独自のセレクターを使用できます。これは単なる例です。それがどのように機能するか教えてください。

于 2009-06-04T00:01:23.540 に答える
0

あなたが探しているのは .live() だと思います

.live() を使用すると、「現在または将来、現在のセレクターに一致するすべての要素のイベントにハンドラーをアタッチする」ことができます。

例えば:

$(".clickme").click(function(){
  $(this).fadeOut();
}

このコードは、.load() または .get() でページに挿入された要素では機能しません。

しかし、これを行うと:

$(".clickme").live('click', function(){
  $(this).fadeOut();
}

...javascript を介してページ レイアウトに挿入された要素でも機能します。

jQuery APの詳細情報

于 2010-07-15T23:19:26.677 に答える