【问题标题】:How to Scroll an iFrame using javascript如何使用 javascript 滚动 iFrame
【发布时间】:2011-01-22 20:40:00
【问题描述】:

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

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);

到目前为止还没有解决,谁能告诉我我错过了什么或做错了什么?谢谢!

【问题讨论】:

    标签: javascript jquery cross-browser scroll


    【解决方案1】:

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

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

    所以,你会使用:

    scrollIFrame('iframe', 0, 250);
    

    【讨论】:

    • 臭虫,我太傻了,已修复,但不相信它会起作用。
    【解决方案2】:

    试试这个:

    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);

    【讨论】:

      猜你喜欢
      • 2010-11-14
      • 1970-01-01
      • 2014-11-21
      • 1970-01-01
      • 2011-07-03
      • 2017-09-02
      • 2010-10-15
      • 2012-12-19
      • 2011-09-07
      相关资源
      最近更新 更多