使用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图片平滑连续滚动插件
Apr 27 Javascript
js null,undefined,字符串小结
Aug 21 Javascript
javascript高级程序设计第二版第十二章事件要点总结(常用的跨浏览器检测方法)
Aug 22 Javascript
在Iframe中获取父窗口中表单的值(示例代码)
Nov 22 Javascript
JS 数字转换研究总结
Dec 26 Javascript
JavaScript中创建对象和继承示例解读
Feb 12 Javascript
AngularJS + Node.js + MongoDB开发的基于高德地图位置的通讯录
Jan 02 Javascript
JQuery select(下拉框)操作方法汇总
Apr 15 Javascript
神奇!js+CSS+DIV实现文字颜色渐变效果
Mar 16 Javascript
JS实现改变HTML上文字颜色和内容的方法
Dec 30 Javascript
Node.js Buffer模块功能及常用方法实例分析
Jan 05 Javascript
Vue多组件仓库开发与发布详解
Feb 28 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 获得汉字拼音首字母的函数
2009/08/01 PHP
PHP操作xml代码
2010/06/17 PHP
php array_unique之后json_encode需要注意
2011/01/02 PHP
php二维数组排序与默认自然排序的方法介绍
2013/04/27 PHP
在 Laravel 中 “规范” 的开发短信验证码发送功能
2017/10/26 PHP
Thinkphp5.0 框架的请求方式与响应方式分析
2019/10/14 PHP
js 新浪的一个图片播放图片轮换效果代码
2008/07/15 Javascript
用jquery生成二级菜单的实例代码
2013/06/24 Javascript
jquery遍历数组与筛选数组的方法
2013/11/05 Javascript
用nodejs实现PHP的print_r函数代码
2014/03/14 NodeJs
Jquery图片延迟加载插件jquery.lazyload.js的使用方法
2014/05/21 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
2015/07/29 Javascript
JS仿淘宝实现的简单滑动门效果代码
2015/10/14 Javascript
JavaScript实现字符串与日期的互相转换及日期的格式化
2016/03/07 Javascript
Bootstrap 实现查询的完美方法
2016/10/26 Javascript
浅谈EasyUi ComBotree树修改 父节点选择的问题
2016/11/07 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
Angularjs 实现移动端在线测评效果(推荐)
2017/04/05 Javascript
JavaScript引用类型Function实例详解
2018/08/09 Javascript
Sublime Text3 配置 NodeJs 环境的方法
2020/05/20 NodeJs
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
Python实现获取网站PR及百度权重
2015/01/21 Python
Python获取任意xml节点值的方法
2015/05/05 Python
Python栈类实例分析
2015/06/15 Python
Python中operator模块的操作符使用示例总结
2016/06/28 Python
Django csrf 验证问题的实现
2018/10/09 Python
Python中的支持向量机SVM的使用(附实例代码)
2019/06/26 Python
python 实现非极大值抑制算法(Non-maximum suppression, NMS)
2020/10/15 Python
一些Unix笔试题和面试题
2012/09/25 面试题
国际金融专业大学生职业生涯规划书
2013/12/28 职场文书
运动会稿件100字
2014/02/21 职场文书
房屋租赁意向书
2014/04/01 职场文书
感谢信范文大全
2015/01/23 职场文书
幼儿园六一主持词开场白
2015/05/28 职场文书
网络妈妈观后感
2015/06/08 职场文书
el-form每行显示两列底部按钮居中效果的实现
2022/08/05 HTML / CSS