等待动态插入的内容存在

时间:2012-07-25 20:00:14

标签: jquery ajax

我正在做一个简单的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); 
   }
});

触发成功回调函数,返回的数据不包含动态插入的内容。是否有可能等待它被加载?如果是这样,任何想法如何?

2 个答案:

答案 0 :(得分:2)

如果我理解正确你通过get获取的页面中包含js代码,该代码会发出其他ajax请求,这些请求在完成其他操作之前需要等待完成。在这种情况下,最好的方法是在主页面中定义一个回调函数,您可以从内部页面中的ajax调用的成功处理程序调用该函数。

如果您可以控制第二个站点的内容,则可以在其中包含来自主域的脚本。此脚本中的代码应该能够在没有跨域安全问题的情况下调用您的回调函数。

答案 1 :(得分: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不是为了“等待”而设计的,因为等待花费了无限的时间,并且会阻止浏览器的其余部分进行处理。例如,如果你创建了一个无限循环,只是坐着等待,你的网络浏览器就会冻结。

<强>更新

请务必在ajax事件中调用ready方法。这将确保首先加载文档。

$(document).ready(function(){
    // Your JS here
});