如何使用javascript滚动iFrame
我有几个加载外部网页的iFrame,虽然一次只出现1个,因此我想要添加到按钮(而不是滚动条)的id =“iFrame”,这样用户可以按下它们向下或向上滚动,我试图用javascript做到这一点,但到目前为止我一直没有成功,我在这里读了一些post并尝试了这些 答案,但到目前为止还没有运气。 我也尝试过:
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);
到目前为止没有任何结果,任何人都可以让我知道我错过了什么或做错了什么? 谢谢!
尝试使用以下(未经测试,但应该工作):
function scrollIFrame(name, x, y) { var frame = document.getElementById(name); frame.contentWindow.scrollTo(x, y); }
所以,你会使用:
scrollIFrame('iframe', 0, 250);
试试这个:
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
和scrollTo
应该工作相同。 这里重要的是getElementsByTagName
返回一个数组。 如果你运行这个newFrame.contentWindow.scrollBy(0,250);
你不是在滚动iframe,而是试图滚动数组。 相反,你必须运行它: newFrame[0].contentWindow.scrollBy(0,250);