使用iframe window的scroll方法控制iframe页面滚动


Posted in Javascript onMarch 05, 2014

在页面中如何控制内嵌的iframe滚动呢?方法是使用iframe window的scroll方法:

1、获取iframe的窗口对象

var iwin = document.getElementById('iframe1').contentWindow;

2 、获取iframe的窗口document对象

var doc = iwin.document;

3、调用iframe window对象的scroll方法

iwin.scroll(0,doc.body.scrollHeight);

scroll两个参数为x,y轴的滚动量

doc.body.scrollHeight为iframe页面的高度(包含未显示的部分)

一个综合应用例子如下:

<html> <head> 
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"> 
<title>hover test</title> 
<style type="text/css"> 
ul{ 
background-color:#ff00ff; 
display:block; 
} 
.toc li{ 
position:relative; width:10em; 
background-color:#00ff00; 
display:block; 
} 
li a { 
/*display:block;*/ /*若以块的模式显示,则会占满整个父元素空间*/ 
background-color:#0000ff; 
} /*必须让a成为块级元素*/ 
li a i{ 
display:none; 
} 
li a:hover{ 
text-align:left; 
}/*这里添加的代码只是为了让IE6显示,没有特殊功能,除text-decoration,color,z-index外都可以写*/ 
.toc li a:hover i{ 
display:block; 
width:6em; 
position:absolute; 
top:0; 
left:100%; /* 这里100%指相对于元素li的宽度*/ 
margin:-1em 0 0 0em; 
padding:1em; 
background:#cde; 
border:1px solid red; 
text-align:left; 
z-index:10000; 
} 
</style> 
</head> 
<body> 
<iframe id="iframe1" src="" width="400" height="300"></iframe> 
html代码 
<ul class="toc" id="toc"> 
<li><a href="1.html">Chapter 1<i>In which a dragon is seen</i></a></li> 
<li><a href="2.html">Chapter 1<i>In which a knight is summoned</i></a></li> 
<li><a href="3.html">Chapter 1<i>In which a proncess is disappointed</i></a></li> 
<li><a href="4.html">Chapter 1<i>In which a dragon is seen</i></a></li> 
<li><a href="5.html">Chapter 1<i>In which a dragon is seen</i></a></li> 
<li><a href="6.html">Chapter 1<i>In which a dragon is seen</i></a></li> 
<li><a href="7.html">Chapter 1<i>In which a dragon is seen</i></a></li> 
</ul> 
<script language="javascript"> 
function getElementAbsPos(e) { 
var t = e.offsetTop; 
var l = e.offsetLeft; 
while(e = e.offsetParent) { 
t += e.offsetTop; 
l += e.offsetLeft; 
} 
return {left:l,top:t}; 
} 
function getPosition(obj){ 
var left = 0; 
var top = 0; 
while(obj != document.body){ 
left = obj.offsetLeft; 
top = obj.offsetTop; 
obj = obj.offsetParent; 
} 
return left; 
} 
var lis = document.getElementsByTagName('li'); 
var iwin = document.getElementById('iframe1').contentWindow; 
var doc = iwin.document; 
for(var i=0;i<lis.length;i++){ 
lis[i].onmouseover = function(){ 
var obji = this.childNodes[0].childNodes[1]; 
doc.writeln('<br>'+ obji.innerText + ',' + getElementAbsPos(document.getElementById('toc')).left); 
doc.writeln('<br>'+ obji.offsetLeft + ',' + getElementAbsPos(obji).left + ',' + obji.offsetWidth+ ',' + obji.style.left); 
doc.writeln('<br><b>'+ doc.body.scrollHeight + '</b>') 
iwin.scroll(0,doc.body.scrollHeight); 
//iwin.scrollTo(10000); //无效 
} 
} 
</script> 
</body> 
</html>
Javascript 相关文章推荐
Jquery乱码的一次解决过程 图解教程
Feb 20 Javascript
jquery 实现两Select 标签项互调示例代码
Sep 25 Javascript
每天一篇javascript学习小结(Date对象)
Nov 13 Javascript
jQuery简单实现彩色云标签效果示例
Aug 01 Javascript
Bootstrap CSS组件之下拉菜单(dropdown)
Dec 17 Javascript
深入理解Node.js中通用基础设计模式
Sep 19 Javascript
微信小程序中button组件的边框设置的实例详解
Sep 27 Javascript
js中的闭包学习心得
Feb 06 Javascript
使用FileReader API创建Vue文件阅读器组件
Apr 03 Javascript
对vue下点击事件传参和不传参的区别详解
Sep 15 Javascript
vue项目打包后上传至GitHub并实现github-pages的预览
May 06 Javascript
简单了解小程序+node梳理登陆流程
Jun 24 Javascript
js写的方法实现上传图片之后查看大图
Mar 05 #Javascript
js数值和和字符串进行转换时可以对不同进制进行操作
Mar 05 #Javascript
JSON中双引号的轮回使用过程中一定要小心
Mar 05 #Javascript
关于jQuery中的each方法(jQuery到底干了什么)
Mar 05 #Javascript
JavaScript 实现简单的倒计时弹窗DEMO附图
Mar 05 #Javascript
js时间比较示例分享(日期比较)
Mar 05 #Javascript
对于Form表单reset方法的新认识
Mar 05 #Javascript
You might like
php header Content-Type类型小结
2011/07/03 PHP
PHP获取一个字符串中间一部分字符的方法
2014/08/19 PHP
免费空间广告万能消除代码
2006/09/04 Javascript
可缩放Reloaded-一个针对可缩放元素的复用组件
2007/03/10 Javascript
开发 Internet Explorer 右键功能表(ContextMenu)
2013/07/03 Javascript
document.documentElement和document.body区别介绍
2013/09/16 Javascript
js获取多个tagname的节点数组
2013/09/22 Javascript
Java/JS获取flash高宽的具体方法
2013/12/27 Javascript
JavaScript定时器和优化的取消定时器方法
2015/07/03 Javascript
JS实现的表格行上下移动操作示例
2016/08/03 Javascript
JavaScript的事件机制详解
2017/01/17 Javascript
详解如何用webpack打包一个网站应用项目
2017/07/12 Javascript
基于Bootstrap框架菜鸟入门教程(推荐)
2017/09/17 Javascript
通俗易懂地解释JS中的闭包
2017/10/23 Javascript
Bootstrap 中data-[*] 属性的整理
2018/03/13 Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
2020/08/08 Javascript
vue 使用饿了么UI仿写teambition的筛选功能
2021/03/01 Vue.js
使用Python简单的实现树莓派的WEB控制
2016/02/18 Python
在NumPy中创建空数组/矩阵的方法
2018/06/15 Python
Python使用pickle模块储存对象操作示例
2018/08/15 Python
搞清楚 Python traceback的具体使用方法
2019/05/13 Python
pandas将多个dataframe以多个sheet的形式保存到一个excel文件中
2019/10/10 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
2019/10/23 Python
Python使用lambda抛出异常实现方法解析
2020/08/20 Python
python调用百度AI接口实现人流量统计
2021/02/03 Python
美国打印机墨水和碳粉购物网站:QuikShip Toner
2018/08/29 全球购物
Stuarts London美国/加拿大:世界领先的独立男装零售商之一
2019/03/18 全球购物
波兰多品牌运动商店:StreetStyle24.pl
2020/09/22 全球购物
计算机专业个人简短的自我评价
2013/10/23 职场文书
人力资源总监工作说明
2014/03/03 职场文书
蓝颜请假条
2014/04/11 职场文书
节电标语大全
2014/06/23 职场文书
教师作风建设剖析材料
2014/10/11 职场文书
语文教师求职信范文
2015/03/20 职场文书
活动主持人开场白
2015/05/28 职场文书
决心书格式及范文
2019/06/24 职场文书