使用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 相关文章推荐
最新的10款jQuery内容滑块插件分享
Sep 18 Javascript
js打造数组转json函数
Jan 14 Javascript
JS实现兼容各浏览器解析XML文档数据的方法
Jun 01 Javascript
JavaScript仿百度图片浏览效果
Nov 23 Javascript
jQuery插件FusionWidgets实现的Bulb图效果示例【附demo源码下载】
Mar 23 jQuery
Angular4学习笔记之新建项目的方法
Jul 18 Javascript
angularjs select 赋值 ng-options配置方法
Feb 28 Javascript
详解swipe使用及竖屏页面滚动方法
Jun 28 Javascript
javascript异步处理与Jquery deferred对象用法总结
Jun 04 jQuery
JS实现简单的表格增删
Jan 16 Javascript
将Vue组件库更换为按需加载的方法步骤
May 06 Javascript
移动端JS实现拖拽两种方法解析
Oct 12 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与MySQL开发中页面乱码的产生与解决
2008/03/27 PHP
phpMyAdmin 链接表的附加功能尚未激活的问题
2010/08/01 PHP
php下将多个数组合并成一个数组的方法与实例代码
2011/02/03 PHP
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
php中session定期自动清理的方法
2015/11/12 PHP
php 静态属性和静态方法区别详解
2017/04/09 PHP
thinkPHP5实现数据库添加内容的方法
2017/10/25 PHP
js实现广告漂浮效果的小例子
2013/07/02 Javascript
JS获取select的value和text值的简单实例
2014/02/26 Javascript
JavaScript基础重点(必看)
2016/07/09 Javascript
JS基于HTML5的canvas标签实现炫目的色相球动画效果实例
2016/08/24 Javascript
Jquery根据浏览器窗口改变调整大小的方法
2017/02/07 Javascript
ES6 Promise对象概念与用法分析
2017/04/01 Javascript
如何用input标签和jquery实现多图片的上传和回显功能
2018/05/16 jQuery
Vue 全家桶实现移动端酷狗音乐功能
2018/11/16 Javascript
优雅地使用loading(推荐)
2019/04/20 Javascript
微信小程序如何实现点击图片放大功能
2020/01/21 Javascript
js实现小球在页面规定的区域运动
2020/06/16 Javascript
Python3连接MySQL(pymysql)模拟转账实现代码
2016/05/24 Python
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
浅谈python 读excel数值为浮点型的问题
2018/12/25 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
2019/06/17 Python
Python 添加文件注释和函数注释操作
2020/08/09 Python
Django-silk性能测试工具安装及使用解析
2020/11/28 Python
英国内衣连锁店:Boux Avenue
2018/01/24 全球购物
Orvis官网:自1856年以来,优质服装、飞钓装备等
2018/12/17 全球购物
英国领先的独立酒精饮料零售商:DrinkSupermarket
2021/01/13 全球购物
出国留学自荐信
2013/10/25 职场文书
家长评语和期望
2014/02/10 职场文书
交通事故和解协议书
2014/09/25 职场文书
2015教师节师德演讲稿
2015/03/19 职场文书
学校清洁工岗位职责
2015/04/15 职场文书
党员承诺书格式范文
2015/04/28 职场文书
山楂树之恋观后感
2015/06/11 职场文书
新闻通讯稿范文
2015/07/22 职场文书
2019新员工试用期转正申请书3篇
2019/08/13 职场文书