2011-10-26 37 views
7

Tôi có một khung nội tuyến rất dài bên trong trang gốc của tôi. Khi bạn tải lại hoặc nhấp vào liên kết bên trong trang của khung hình i, nó sẽ được tải bên trong nó nhưng cửa sổ thuần túy phải cuộn lên.

Tôi đã thử mã variuos dụ: jquery which event is better thatn this và đang How to scroll parent page with iFrame reload Chánh thân page:

<script language="javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript"></script> 
<script type="text/javascript"> 
jQuery(document).ready(function() { 
    $('iframe').load(function(){ 
     $(window).scrollTop(0); 
    }); 
});</script> 
<iframe frameborder="0" height="1000" id="iframe" src="http://mysite.com" width="800"></iframe> 

Và bây giờ đây là mã của tôi cuối cùng trong trang mẹ: (không hoạt động)

<script type="text/javascript"> 
$('iframe').ready(function(){ 
    $(window).scrollTop(0); 
}); 
</script> 
<iframe frameborder="0" height="1000" id="iframe" align="top" src="http://foicam.altervista.org/listadinamica.php" width="800" ></iframe> 

nhưng sự cố là mỗi mã sẽ cuộn lên trang gốc SAU KHI khung được tải hoàn toàn (bao gồm hình ảnh). Tôi muốn là trang phụ huynh cuộn lên TRƯỚC KHI iframe đã kết thúc để tải.

nếu bạn nhấp vào hình ảnh cuối cùng hoặc cuộn xuống trang và sau đó tải lại chỉ iframe bạn sẽ thấy ý tôi!

Thanx rất nhiều, và xin lỗi nhưng tôi đã phát hiện ra sự tồn tại của ngôn ngữ này chiều hôm qua !!!

+0

Bạn chưa giải thích lý do tại sao bạn đã đổ khối mã đầu tiên cho một khối mã không hoạt động. – Sparky

Trả lời

12

Thay đổi mã của bạn để:

<iframe frameborder="0" height="1000" id="iframe" align="top" src="http://foicam.altervista.org/listadinamica.php" width="800" ></iframe> 

<script type="text/javascript"> 
$('iframe').ready(function(){ 
    $(window).scrollTop(0); 
}); 
</script> 

kịch bản của bạn đang được gọi trước khi iframe của bạn là một phần của DOM của bạn. Nếu bạn đặt tập lệnh của mình sau iframe là một phần của DOM, nó sẽ nhận ra nó và $('iframe') sẽ thực sự tìm thấy đối tượng.

+5

Nó không hề hay chút nào ... :-( – Lork

+2

Điều này hoạt động tốt.Jquery 2.0 và trình duyệt hiện đại – Julian

+0

Không hoạt động. Bạn chưa kiểm tra trước khi đăng câu trả lời! – tylik

3

Tập lệnh xuất hiện trước iframe trong nguồn và không có bất kỳ điều gì để trì hoãn việc thực thi (chẳng hạn như được gọi trong onready).

Do đó, khi thực thi, khung nội tuyến chưa được thêm vào DOM và công cụ chọn không tìm thấy khung. Trình xử lý sự kiện sẽ chỉ bị ràng buộc với bất kỳ iframe nào xuất hiện trước đó trong nguồn.

+0

Vậy ... giải pháp có thể là gì? – Lork

+0

Xin lỗi nhưng tôi không thể hiểu được. Tôi không muốn trì hoãn việc thực thi kịch bản !!! Là ngược lại! Tập lệnh bây giờ chạy SAU KHI khung được tải. Tôi muốn chạy nó mỗi lần thay đổi khung src ... xin vui lòng giúp đỡ! – Lork

+2

@Quentin Tôi biết tôi sẽ đến muộn một chút, nhưng "Đoạn đầu tiên của câu trả lời của tôi nói rằng vấn đề là do X và Y. Thay đổi X hoặc Y để nó không còn đúng nữa." chỉ là một phản ứng thô. Nếu bạn không biết làm thế nào để làm điều đó, làm thế nào bạn có thể mong đợi người yêu cầu để biết? Đó là một phản ứng tồi tệ đến mức nó khiến một người khác đến và bình luận về nó lâu sau khi nó được tạo ra. – coder543

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