2010-03-02 74 views
1

我有幾個加載外部網頁的iFrames,雖然每次只出現1個,因此所有的id =「iFrame」我想添加到按鈕(不是滾動條),所以用戶可以向下或向上滾動按下,我試圖用JavaScript來做到這一點,但到目前爲止,我一直沒有成功,我已經閱讀了一些帖子,並嘗試thoseanswers但到目前爲止沒有運氣。我也曾嘗試:到目前爲止如何使用javascript滾動iFrame

var newFrame = document.getElementsByTagName('iframe'); 
if(typeof newFrame !== 'undefined'){ 
    newFrame.contentWindow.scrollBy(0,250); 

var myframe = document.getElementById(window.frameElement[0].id); 
myframe.window.scrollBy(0,50); 

一切都沒有制定出來,任何人都可以讓我知道我錯過或做錯了嗎?謝謝!

回答

1

嘗試使用以下(未經測試,但應工作):

function scrollIFrame(name, x, y) 
{ 
    var frame = document.getElementById(name);   
    frame.contentWindow.scrollTo(x, y);   
} 

所以,你可以使用:

scrollIFrame('iframe', 0, 250); 
+1

這不會工作,一旦iframe已加載。 – 2010-03-02 18:26:41

+0

這是愚蠢的,我修理了,但不相信它會起作用。 – 2010-03-02 18:30:46

0

試試這個:

var iFrames = document.getElementsByTagName('iframe'); 
for (var i = 0; i < iFrames.length; i++) { 
    //+= for -= depending on direction 
    //scrollLeft for horizontal, scrollTop for vertical 
    //iFrames[i].contentWindow.scrollTop += 10; 
    iFrames[i].contentWindow.scrollTop -= 10; 
} 

scrollByscrollTo應工作也一樣。這裏重要的是getElementsByTagName返回一個數組。如果您運行此newFrame.contentWindow.scrollBy(0,250);您不滾動iframe,但試圖滾動數組。相反,你將不得不運行這個:newFrame[0].contentWindow.scrollBy(0,250);