使用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 相关文章推荐
JSQL SQLProxy 的 php 版本代码
May 05 Javascript
JS函数验证总结(方便js客户端输入验证)
Oct 29 Javascript
js操作table示例(个人心得)
Nov 29 Javascript
js实现的标题栏新消息闪烁提示效果
Jun 06 Javascript
JavaScript中string转换成number介绍
Dec 31 Javascript
JavaScript模版引擎的基本实现方法浅析
Feb 15 Javascript
Bootstrap入门书籍之(三)栅格系统
Feb 17 Javascript
vue-cli的webpack模板项目配置文件分析
Apr 01 Javascript
windows下vue-cli导入bootstrap样式
Apr 25 Javascript
使用jQuery实现页面定时弹出广告效果
Aug 24 jQuery
新手vue构建单页面应用实例代码
Sep 18 Javascript
vue+iview实现文件上传
Nov 17 Vue.js
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非阻塞模式
2016/03/03 PHP
php获取文章内容第一张图片的方法示例
2017/07/03 PHP
PHP中localeconv()函数的用法
2019/03/26 PHP
php封装的page分页类完整实例代码
2020/02/01 PHP
jQuery EasyUI API 中文文档 - DataGrid数据表格
2011/11/17 Javascript
javascript开发随笔二 动态加载js和文件
2011/11/25 Javascript
jQuery 插件开发指南
2014/11/14 Javascript
jQuery实现新消息在网页标题闪烁提示
2015/06/23 Javascript
jQuery选择器_动力节点Java学院整理
2017/07/05 jQuery
webpack学习笔记之代码分割和按需加载的实例详解
2017/07/20 Javascript
vue 监听屏幕高度的实例
2018/09/05 Javascript
vue实现文字横向无缝走马灯组件效果的实例代码
2019/04/09 Javascript
layui实现多图片上传并限制上传的图片数量
2019/09/26 Javascript
JS实现排行榜文字向上滚动轮播效果
2019/11/26 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
2020/03/31 Javascript
Python yield使用方法示例
2013/12/04 Python
Python开发WebService系列教程之REST,web.py,eurasia,Django
2014/06/30 Python
python使用urllib2提交http post请求的方法
2015/05/26 Python
Python 高级专用类方法的实例详解
2017/09/11 Python
pytorch绘制并显示loss曲线和acc曲线,LeNet5识别图像准确率
2020/01/02 Python
Python3 Click模块的使用方法详解
2020/02/12 Python
python实现文法左递归的消除方法
2020/05/22 Python
PHP基于phpqrcode类库生成二维码过程解析
2020/05/28 Python
Python爬虫教程之利用正则表达式匹配网页内容
2020/12/08 Python
CSS3绘制圆角矩形的简单示例
2015/09/28 HTML / CSS
详解CSS3的opacity属性设置透明效果的用法
2016/05/09 HTML / CSS
kmart凯马特官网:美国最大的打折零售商和全球最大的批发商之一
2016/11/17 全球购物
Myprotein法国官网:欧洲第一运动营养品牌
2019/03/26 全球购物
Delphi CS笔试题
2014/01/04 面试题
工业自动化专业自荐信范文
2014/04/10 职场文书
农村文化建设标语
2014/10/07 职场文书
团员自我评价范文
2015/03/10 职场文书
公司更名通知函
2015/04/24 职场文书
2015年学校心理健康教育工作总结
2015/05/11 职场文书
Flask response响应的具体使用
2021/07/15 Python
JavaScript利用html5新方法操作元素类名详解
2021/11/27 Javascript