*請注意:跨域場景*如何強制iframe的父頁面在用戶在iframe中導航時自動滾動到頂部?
我比瀏覽器窗口,它具有沒有滾動條的iframe,但更加高,所以垂直滾動是由瀏覽器的主要垂直滾動條來完成。然而,這有一個令人不安的特徵:當導航在向下滾動狀態下完成時,滾動不會重置到父級的頂部。
我想在iframe中發生頁面導航時自動將此滾動重置爲init top狀態。
在此先感謝。
*請注意:跨域場景*如何強制iframe的父頁面在用戶在iframe中導航時自動滾動到頂部?
我比瀏覽器窗口,它具有沒有滾動條的iframe,但更加高,所以垂直滾動是由瀏覽器的主要垂直滾動條來完成。然而,這有一個令人不安的特徵:當導航在向下滾動狀態下完成時,滾動不會重置到父級的頂部。
我想在iframe中發生頁面導航時自動將此滾動重置爲init top狀態。
在此先感謝。
您可以將一個onload
事件掛鉤到iframe。它是跨域場景中可以獲得的少數幾個鉤子之一。
document.getElementById("some_iframe").onload = function(){ window.scrollTo(0,0); }
如果您的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中向下滾動,然後向上滾動整個文檔時,會觸發事件。
不幸的是,我無法訪問父頁面。它是另一個提供商在其他領域的其他應用程序 – 2014-09-29 14:13:36
啊。我以爲你在管理父頁面,而不是iframe。 – 2014-09-29 14:30:06