使用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中:enabled选择器用法实例
Jan 04 Javascript
js鼠标悬浮出现遮罩层的方法
Jan 28 Javascript
Bootstrap教程JS插件滚动监听学习笔记分享
May 18 Javascript
使用bootstrap validator的remote验证代码经验分享(推荐)
Sep 21 Javascript
js select下拉联动 更具级联性!
Apr 17 Javascript
JavaScript基本类型值-Undefined、Null、Boolean
Feb 23 Javascript
jQuery使用unlock.js插件实现滑动解锁
Apr 04 jQuery
js实现手机web图片左右滑动效果
Dec 29 Javascript
jQuery插件jsonview展示json数据
May 26 jQuery
vue-swiper的使用教程
Aug 30 Javascript
详解基于vue-cli3快速发布一个fullpage组件
Mar 08 Javascript
vue实现公共方法抽离
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微信API接口类
2016/08/22 PHP
详谈PHP中的密码安全性Password Hashing
2017/02/04 PHP
PHP判断密码强度的方法详解
2017/05/26 PHP
PHP实现时间比较和时间差计算的方法示例
2017/07/24 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
jQuery技巧大放送 学习jquery的朋友可以看下
2009/10/14 Javascript
jQuery函数的第二个参数获取指定上下文中的DOM元素
2014/05/19 Javascript
JavaScript生成的动态下雨背景效果实现方法
2015/02/25 Javascript
javascript组合使用构造函数模式和原型模式实例
2015/06/04 Javascript
原生js实现模拟滚动条
2015/06/15 Javascript
点评js异步加载的4种方式
2015/12/22 Javascript
全面解析Bootstrap中transition、affix的使用方法
2016/05/30 Javascript
BootStrap tab选项卡使用小结
2020/08/09 Javascript
Vue.js第四天学习笔记(组件)
2016/12/02 Javascript
AngularJs中Bootstrap3 datetimepicker使用实例
2016/12/13 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
Vue 组件(component)教程之实现精美的日历方法示例
2018/01/08 Javascript
使用vue中的v-for遍历二维数组的方法
2018/03/07 Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
2018/04/17 Javascript
详解用场景去理解函数柯里化(入门篇)
2019/04/11 Javascript
js生成1到100的随机数最简单的实现方法
2020/02/07 Javascript
js 解析 JSON 数据简单示例
2020/04/21 Javascript
vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件
2021/02/20 Vue.js
Python使用min、max函数查找二维数据矩阵中最小、最大值的方法
2018/05/15 Python
使用matplotlib的pyplot模块绘图的实现示例
2020/07/12 Python
python如何设置静态变量
2020/09/07 Python
html5使用html2canvas实现浏览器截图的示例
2017/08/31 HTML / CSS
企业员工培训感言
2014/02/26 职场文书
开业典礼主持词
2014/03/21 职场文书
教师读书活动总结
2014/05/07 职场文书
教师演讲稿开场白
2014/08/25 职场文书
明确岗位职责
2015/02/14 职场文书
学校食堂食品安全承诺书
2015/04/29 职场文书
逃出克隆岛观后感
2015/06/09 职场文书
小学英语教学反思范文
2016/02/15 职场文书
2016年领导干部廉政承诺书
2016/03/24 职场文书