使用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 相关文章推荐
javascript延时重复执行函数 lLoopRun.js
Jun 29 Javascript
Jquery Autocomplete 结合asp.net使用要点
Oct 29 Javascript
非常棒的10款jQuery 幻灯片插件
Jun 14 Javascript
JsRender实用入门教程
Oct 31 Javascript
javascript中sort()的用法实例分析
Jan 30 Javascript
JavaScript获取数组最小值和最大值的方法
Jun 09 Javascript
jQuery检测滚动条是否到达底部
Dec 15 Javascript
js点击按钮实现带遮罩层的弹出视频效果
Dec 19 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
Aug 25 Javascript
微信小程序分享功能之按钮button 边框隐藏和点击隐藏
Jun 14 Javascript
在小程序中集成redux/immutable/thunk第三方库的方法
Aug 12 Javascript
Vuex 模块化使用详解
Jul 31 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 Undefined index的问题
2009/06/01 PHP
PHP处理Oracle的CLOB实例
2014/11/03 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
为你总结一些php系统类函数
2015/10/21 PHP
php实现图片缩略图的方法
2016/03/29 PHP
Yii2分页的使用及其扩展方法详解
2016/05/23 PHP
PHP hex2bin()函数用法讲解
2019/02/25 PHP
jquery 图片预加载 自动等比例缩放插件
2008/12/25 Javascript
基于jQuery的360图片展示实现代码
2012/06/14 Javascript
js实现弹窗插件功能实例代码分享
2013/12/12 Javascript
jQuery中first()方法用法实例
2015/01/06 Javascript
JQuery.Ajax()的data参数类型实例详解
2015/11/20 Javascript
AngularJs 动态加载模块和依赖
2016/09/15 Javascript
如何利用JQuery实现从底部回到顶部的功能
2016/12/27 Javascript
NodeJS仿WebApi路由示例
2017/02/28 NodeJs
使用Vue实现简单计算器
2020/02/25 Javascript
python开发之tkinter实现图形随鼠标移动的方法
2015/11/11 Python
python爬虫系列Selenium定向爬取虎扑篮球图片详解
2017/11/15 Python
Python3之简单搭建自带服务器的实例讲解
2018/06/04 Python
Selenium元素的常用操作方法分析
2018/08/10 Python
使用Python进行目录的对比方法
2018/11/01 Python
从0开始的Python学习016异常
2019/04/08 Python
【python】matplotlib动态显示详解
2019/04/11 Python
Python音频操作工具PyAudio上手教程详解
2019/06/26 Python
tensorflow 获取所有variable或tensor的name示例
2020/01/04 Python
python实现根据给定坐标点生成多边形mask的例子
2020/02/18 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
2020/03/10 Python
Django分组聚合查询实例分享
2020/04/29 Python
html5通过postMessage进行跨域通信的方法
2017/12/04 HTML / CSS
水芝澳美国官网:H2O Plus
2016/10/15 全球购物
行政主管岗位职责
2013/11/18 职场文书
实践单位评语
2014/04/26 职场文书
大学生通用个人自我评价
2014/04/27 职场文书
党的群众路线教育实践活动总结报告
2014/07/03 职场文书
关于食品安全的演讲稿范文(三篇)
2019/10/21 职场文书
导游词之苏州阳澄湖
2019/11/15 职场文书