2010-08-24 35 views
7

Tôi làm cách nào để tải lại iframe bằng jquery?Ajax Tải lại iframe

<html> 

<head> 
<script type="text/javascript" src="jquery-1.4.2.js" > </script> 


<script type="text/javascript"> 
//Reload Iframe Function  
</script> 

</head> 

<body> 
    <iframe name="f1" id = "f1" src="http://www.google.com.pk/search?q=usa+current+time&ie=utf-8&oe=utf-8&aq=t&client=firefox-a&rlz=1R1GGLL_en" width=500px height=250px> 
    </iframe> 

<button onClick="abc()"> Reload </button> 

</body> 

</html> 

Trả lời

2
$("#reload").click(function() { 
      jQuery.each($("iframe"), function() { 
       $(this).attr({ 
        src: $(this).attr("src") 
       }); 
      }); 
      return false; 
     }); 

Điều này sẽ lặp qua mỗi iFrame mỗi khi bạn bấm vào một liên kết với một lớp học của reloadAds và thiết lập nguồn của iFrame cho chính nó

+0

Đây là mã của tôi: \t Novice

+0

tôi cập nhật nhưng xem câu trả lời @cory là tốt cho bạn –

11

Dựa trên nhận xét của bạn cho bài Haim của , những gì bạn muốn có thể được đơn giản hóa như:

$('#reload').click(function() { 
    $('#f1').attr('src', $('#f1').attr('src')); 
    return false; 
}); 

Hoặc

$('#reload').click(function() { 
    $('#f1')[0].contentWindow.location.reload(true); 
    return false; 
}); 

Nhưng có lẽ câu trả lời của anh ấy phù hợp hơn với nhu cầu của bạn.

UPDATE:

Tôi đặt cùng một ví dụ làm việc bằng cách sử dụng phương pháp tôi cung cấp ở trên. Tôi có một số trong một trang hiển thị một trang khác in thời gian.

Các HTML (time.html):

<html> 
<head> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
</head> 
<body> 

    The time is now <span id="time"></span>. 

    <script type="text/javascript"> 

     $(document).ready(function() { 
      $('#time').html((new Date()).toString()); 
     }); 

    </script> 
</body> 

Và trang mẹ HTML (test.html):

<html> 
<head> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> 
</head> 
<body> 

    <iframe id="frame" src="file:///D:/Users/Cory/Desktop/time.html" width="500" height="250"></iframe> 

    <button id="reload">Refresh</button> 

    <script type="text/javascript"> 

     $(document).ready(function() { 
      $('#reload').click(function() { 
       $('#frame').attr('src', $('#frame').attr('src')); 
       return false; 
      }); 
     }); 

    </script> 
</body> 

này làm việc tốt cho tôi trong Firefox 3.6 và IE 7.

+0

Cảm ơn bạn đã trả lời! Tôi đã thử mã của bạn nhưng tiếc là nó không hoạt động. Novice

+0

bạn có thể muốn gửi ý kiến ​​lớn như thế này như cập nhật bài gốc của bạn. Vui lòng xem cập nhật của tôi về câu trả lời của tôi cho một ví dụ làm việc. –

Các vấn đề liên quan