0

コンテンツを動的に挿入するスクリプトを含むページを取得するために、単純な get 要求を実行しています。

やろうとすると

$.ajax({
   url: url,
   type: "GET",
   success: function(data, status, xhr){
      // triggered before dynamically inserted content is added
   },
   error: function(xhr, status, error) {
      console.log(error); 
   }
});

成功のコールバック関数がトリガーされ、返されたデータに動的に挿入されたコンテンツが含まれていません。ロードされるのを待つことは可能ですか?もしそうなら、どのように考えていますか?

4

2 に答える 2

2

getを介してフェッチしているページにjsコードが含まれていることを正しく理解していれば、他のajaxリクエストを発行し、その完了を待ってから追加の処理を行う必要があります。その場合、最良の方法は、内部ページのajax呼び出しの成功ハンドラーから呼び出すコールバック関数をメインページに定義することです。

2番目のサイトのコンテンツを管理している場合は、メインドメインのスクリプトをそのサイトに含めることができます。このスクリプトのコードは、クロスドメインのセキュリティ問題なしにコールバック関数を呼び出すことができるはずです。

于 2012-07-25T20:18:34.220 に答える
0

いいえ、コールバック関数にコンテンツ追加する必要がありますsuccess:

$.ajax({
   url: url,
   type: "GET",
   success: function(data, status, xhr){
      // insert dynamic content HERE
   },
   error: function(xhr, status, error) {
      console.log(error); 
   }
});

JavaScript は「待機」するように設計されていません。待機には無期限の時間がかかり、ブラウザーの残りの部分の処理が妨げられるためです。たとえば、ただ座って待機する無限ループを作成すると、Web ブラウザーがフリーズします。

アップデート

イベントajax内でメソッドを呼び出していることを確認してください。readyこれにより、ドキュメントが最初に読み込まれます。

$(document).ready(function(){
    // Your JS here
});
于 2012-07-25T20:01:32.003 に答える