使用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 相关文章推荐
(推荐一个超好的JS函数库)S.Sams Lifexperience ScriptClassLib
Apr 29 Javascript
jquery CSS选择器笔记
Mar 29 Javascript
javascript 主动派发事件总结
Aug 09 Javascript
DOM 中的事件处理介绍
Jan 18 Javascript
3分钟写出来的Jquery版checkbox全选反选功能
Oct 23 Javascript
fmt:formatDate的输出格式详解
Jan 09 Javascript
jquery实现的简单二级菜单效果代码
Sep 22 Javascript
jQuery+ajax简单实现文件上传的方法
Jun 03 Javascript
详解在vue-cli中使用路由
Sep 25 Javascript
jQuery中$原理实例分析
Aug 13 jQuery
快速解决angularJS中用post方法时后台拿不到值的问题
Aug 14 Javascript
JS实现简单tab选项卡切换
Oct 25 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
BBS(php &amp; mysql)完整版(七)
2006/10/09 PHP
PHP中的日期及时间
2006/11/23 PHP
yii实现创建验证码实例解析
2014/07/31 PHP
Linux下php5.4启动脚本
2014/08/03 PHP
微信支付开发订单查询实例
2016/07/12 PHP
PHP addslashes()函数讲解
2019/02/03 PHP
js中实现多态采用和继承类似的方法
2014/08/22 Javascript
javascript针对cookie的基本操作实例详解
2015/11/30 Javascript
JQuery 动态生成Table表格实例代码
2016/12/02 Javascript
JavaScript组成、引入、输出、运算符基础知识讲解
2016/12/08 Javascript
javascript 初学教程及五子棋小程序的简单实现
2017/07/04 Javascript
解决canvas画布使用fillRect()时高度出现双倍效果的问题
2017/08/03 Javascript
JS 中document.write()的用法和清空的原因浅析
2017/12/04 Javascript
用node开发并发布一个cli工具的方法步骤
2019/01/03 Javascript
Element中的Cascader(级联列表)动态加载省\市\区数据的方法
2019/03/27 Javascript
Vue之Mixins(混入)的使用方法
2019/09/24 Javascript
bootstrap-closable-tab可实现关闭的tab标签页插件
2020/08/09 Javascript
基于python时间处理方法(详解)
2017/08/14 Python
python Web开发你要理解的WSGI &amp; uwsgi详解
2018/08/01 Python
利用pyecharts实现地图可视化的例子
2019/08/12 Python
关于pymysql模块的使用以及代码详解
2019/09/01 Python
python中dict()的高级用法实现
2019/11/13 Python
Pycharm修改python路径过程图解
2020/05/22 Python
Python操作Word批量生成合同的实现示例
2020/08/28 Python
Python项目打包成二进制的方法
2020/12/30 Python
CSS+jQuery实现的在线答题功能
2015/04/25 HTML / CSS
Lookfantastic香港官网:英国知名美妆购物网站
2018/06/19 全球购物
lululemon美国官网:瑜伽服+跑步装备
2018/11/16 全球购物
String s = new String(“xyz”);创建了几个String Object?
2015/08/05 面试题
酒店员工职业生涯规划
2014/02/25 职场文书
金融学专业大学生职业生涯规划
2014/03/07 职场文书
教师中国梦演讲稿
2014/04/23 职场文书
法院反腐倡廉心得体会
2014/09/09 职场文书
2016年第二十届“母亲节暨幸福工程救助贫困母亲活动日”活动总结
2016/04/06 职场文书
MySQL中InnoDB存储引擎的锁的基本使用教程
2021/05/26 MySQL
总结一些Java常用的加密算法
2021/06/11 Java/Android