2012-06-08 29 views
0

我试图通过执行以下jquery代码将一个URL加载到iframe中。问题是,当我尝试查找刚刚加载的iframe元素时,它总是返回之前点击加载的内容。第一次点击始终为空。有人可以帮我解决这个问题吗?由于加载到iframe中的URL并查找刚加载的HTML值 - jquery

$(document).ready(function() { 

    $('.Popup').click(function() { 

     $('#myiframe') 
       .attr('src', $(this).attr('href')) 
       .attr('frameborder', '0') 

     return false; 
    }); 
    alert($('#myiframe').contents().find('.name').html()) 
}); 

回答

1

您需要等待提取的URL加载到iframe中,然后才能从中获取内容。您可以使用jquery .load() function来执行此操作。类似这样的:

$(document).ready(function() { 

$('.Popup').click(function() { 

     $('#myiframe') 
       .attr('src', $(this).attr('href')) 
       .attr('frameborder', '0') 
       .load(function() { 
        alert($(this).contents().find('.name').html()) 
       }) 

     return false; 
    }); 

}); 
0

的可能的原因是,你后注册onclick事件处理报警。你应该做的就是这个,我想:

$(document).ready(function() { 

    $('.Popup').click(function() { 

     $('#myiframe') 
       .attr('src', $(this).attr('href')) 
       .attr('frameborder', '0'); 
     $($("#myIframe").get(0).contentDocument).ready(function() { 
      alert($('#myiframe').contents().find('.name').html()) 
     }); 
     return false; 
    }); 
}); 
0

看起来像你只需要等待警报响起前的iFrame加载。您可以使用load函数。

$("#myiframe").load(function() { 
    alert("iFrame has loaded. You can now get content out of it"); 
});