2010-09-27 37 views
21

Tôi có một iFrame với biểu mẫu phản hồi trong đó. Sau khi người dùng nhấp vào gửi, tôi muốn sử dụng cửa sổ chính để cuộn lên trên cùng. Tôi biết tôi có thể cuộn lên đầu trang bằng:jQuery cuộn lên đầu của iframe cha mẹ

$('html, body').animate({scrollTop:0}, 'slow'); 

Tuy nhiên, điều này sẽ chỉ cuộn nội dung của khung nội tuyến chứ không phải trang gốc. Bất kỳ đề xuất nào?

Trả lời

29

tặng một thử cho một này:

window.parent.$("body").animate({scrollTop:0}, 'slow'); 
+0

Điều đó dường như đã thực hiện thủ thuật! Cảm ơn bạn :) – iltdev

+1

Tôi biết câu hỏi này đã được trả lời gần một năm trước, nhưng khi tôi thử điều này, tôi nhận được lỗi sau: 'TypeError: Property '$' của đối tượng [object DOMWindow] không phải là hàm.' Sử dụng JavaScript trong Google Chrome, tôi có thể thấy một hàm '$' được định nghĩa trên 'window.parent' nhưng khi tôi đi sâu vào nó, nó nói nó chưa được xác định. Có lý do nào khiến câu trả lời này không còn hợp lệ nữa không? – sellmeadog

+19

Bạn không cần jquery, nếu bạn không quan tâm đến hoạt ảnh, hãy sử dụng window.parent.window.scrollTo (0,0); Họ phải ở trong cùng một tên miền vì lý do bảo mật. – devXen

8
<script> 
    jQuery(document).ready(function($) { 
     FB.Canvas.scrollTo(0,0); 
     FB.Canvas.setSize({width: 760, height:$('body').height()+20}); 
    }); 

    function scrollTo(x,y) { 
     $("body").append('<iframe id="scrollTop" style="border:none;width:1px;height:1px;position:absolute;top:-10000px;left:-100px;" src="http://static.ak.facebook.com/xd_receiver_v0.4.php?r=1#{%22id%22%3A0%2C%22sc%22%3Anull%2C%22sf%22%3A%22%22%2C%22sr%22%3A2%2C%22h%22%3A%22iframeOuterServer%22%2C%22sid%22%3A%220.957%22%2C%22t%22%3A0}[0%2C%22iframeInnerClient%22%2C%22scrollTo%22%2C{%22x%22%3A'+x+'%2C%22y%22%3A'+y+'}%2Cfalse]" onload="$(\'#scrollTop\').remove();"></iframe>'); 
    } 
</script> 
+2

FB.Canvas. scrollTo (0,0); Điều này rất hữu ích. tìm kiếm ngày. thanks –

+5

Câu trả lời này thiếu rất nhiều lời giải thích ... đó là ứng dụng Facebook cụ thể. Nhưng tôi đã cố gắng giải quyết vấn đề này cho một ứng dụng Facebook iFrame (canvas), vì vậy 'FB.Canvas.scrollTo (0,0);' chỉ là những gì tôi cần. – thaddeusmt

9

Điều này dường như làm các trick cũng như:

$('html, body', window.parent.document).animate({scrollTop:0}, 'slow');

Các second parameter để $ là bối cảnh để tìm kiếm trong.

1

Trong trang Iframe.

window.parent.ScrollToTop(); // Scroll to top function 

On The trang parrent:

window.ScrollToTop = function(){ 
    $('html,body', window.document).animate({ 
    scrollTop: '0px' 
    }, 'fast'); 
}; 
+0

Tính năng này có hoạt động trên nhiều miền không? – Nubian

1

<body onLoad="window.parent.scroll(0,0);">

Trong cơ thể của trang html của iframe

của nó đơn giản như bạn có thể làm!

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