2012-06-08 26 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"); 
});