2014-09-27 49 views
0

*請注意:跨域場景*如何強制iframe的父頁面在用戶在iframe中導航時自動滾動到頂部?

我比瀏覽器窗口,它具有沒有滾動條的iframe,但更加高,所以垂直滾動是由瀏覽器的主要垂直滾動條來完成。然而,這有一個令人不安的特徵:當導航在向下滾動狀態下完成時,滾動不會重置到父級的頂部。

我想在iframe中發生頁面導航時自動將此滾動重置爲init top狀態。

在此先感謝。

回答

0

您可以將一個onload事件掛鉤到iframe。它是跨域場景中可以獲得的少數幾個鉤子之一。

document.getElementById("some_iframe").onload = function(){ window.scrollTo(0,0); } 
+0

不幸的是,我無法訪問父頁面。它是另一個提供商在其他領域的其他應用程序 – 2014-09-29 14:13:36

+0

啊。我以爲你在管理父頁面,而不是iframe。 – 2014-09-29 14:30:06

2

如果您的IFRAME有一個跨域問題(指向比你的網站之外的其他地方),你不能:
error : Permission denied to access property 'document'

但如果沒有,你可以使用此代碼做到這一點。此頁面添加到腳本:

var myframe = window.frames[0].window; 
myframe.onscroll = function(){if(myframe.scrollY == myframe.scrollMaxY){window.scrollTo(0,0);}}; 
//Thanks Diodeus! 

或者您也可以通過getElementById或其他同類者選擇它,並給予參考myframe變量。當您在iframe中向下滾動,然後向上滾動整個文檔時,會觸發事件。

相關問題