How to Scroll an iFrame using javascript

左心房为你撑大大i 提交于 2020-01-05 15:26:34

问题


I have several iFrames that load an external webpage, although only 1 appears at a time, hence all have the id="iFrame" I want to add to buttons (not the scrollbar) so the user can scroll down or up by pressing them, and I am trying to do this using javascript but so far I've been unsuccessful, I've read some posts here and tried those answers but so far no luck. I have also tried:

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

and

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

nothing has worked out so far, could anyone let me know what am I missing or doing wrong? thank you!


回答1:


Try use the following (untested, but should work):

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

So, you would use:

scrollIFrame('iframe', 0, 250);



回答2:


Try this:

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

scrollBy and scrollTo should work just the same. The important thing here is that getElementsByTagName returns an array. If you run this newFrame.contentWindow.scrollBy(0,250); you are not scrolling the iframe, but trying to scroll the array. Instead, you would have to run this: newFrame[0].contentWindow.scrollBy(0,250);



来源:https://stackoverflow.com/questions/2365567/how-to-scroll-an-iframe-using-javascript

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!