如何使用javascript滚动iFrame

时间:2010-03-02 18:15:10

标签: javascript jquery cross-browser scroll

我有几个加载外部网页的iFrame,虽然一次只出现1个,因此我想要添加到按钮(而不是滚动条)的id =“iFrame”,以便用户可以向下或向上滚动按下它们,我试图用javascript做到这一点,但到目前为止我一直没有成功,我在这里看了一些帖子并尝试those answers但到目前为止还没有运气。我也尝试过:

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);
到目前为止还没有任何结果,任何人都可以让我知道我错过了什么或做错了什么?谢谢!

2 个答案:

答案 0 :(得分:1)

尝试使用以下内容(未经测试,但应该可以使用):

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

所以,你会使用:

scrollIFrame('iframe', 0, 250);

答案 1 :(得分: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);