使用iframe window的scroll方法控制iframe页面滚动

 更新时间:2014年03月05日 17:30:01   作者:  
在页面中如何控制内嵌的iframe滚动呢?方法是使用iframe window的scroll方法,大家可以参考下面的示例
在页面中如何控制内嵌的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>

相关文章

  • Microsoft Ajax Minifier 压缩javascript的方法

    Microsoft Ajax Minifier 压缩javascript的方法

    使用Microsoft AJAX 库 (第六个预览版) 其中有一个 ajaxmin.exe 可以压缩Js文件可以在dos 命令下 /? 查看其参数说明。
    2010-03-03
  • JS中window.open全屏命令解析及使用示例

    JS中window.open全屏命令解析及使用示例

    window.open想必大家对它并不陌生吧,那么如何让它全屏就有些朋友不知道了,下面为大家介绍下其常用的命令及如何全屏
    2013-12-12
  • JavaScript事件

    JavaScript事件 "事件对象"的注意要点

    这篇文章主要介绍了JavaScript事件,告诉大家"事件对象"的注意要点,感兴趣的小伙伴们可以参考一下
    2016-01-01
  • JS对大量数据进行多重过滤的方法

    JS对大量数据进行多重过滤的方法

    今天在工作中遇到一个问题,当前端通过Ajax从后端取得了大量的数据,需要根据一些条件过滤,但是发现写的过滤方法有问题,后来仔细的查找问题,通过网上的资料终于解决了这个问题,现在将解决的过程以及解决方法分享给大家,有需要的朋友们可以参考借鉴。
    2016-11-11
  • 在js中做数字字符串补0(js补零)

    在js中做数字字符串补0(js补零)

    这篇文章主要介绍了在js中做数字字符串补0(js补零),需要的朋友可以参考下
    2017-03-03
  • 后台获取ZTREE选中节点的方法

    后台获取ZTREE选中节点的方法

    这篇文章主要介绍了后台获取ZTREE选中节点的方法,实例分析了ZTREE中getZTreeObj方法与getCheckedNodes方法的使用技巧,需要的朋友可以参考下
    2015-02-02
  • 实用的Javascript调试技巧整理

    实用的Javascript调试技巧整理

    这篇文章介绍了Javascript的调试技巧,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • javascript实现动态显示颜色块的报表效果

    javascript实现动态显示颜色块的报表效果

    本文主要介绍了javascript实现动态显示颜色块的报表效果的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-04-04
  • 小米公司JavaScript面试题

    小米公司JavaScript面试题

    这篇文章主要介绍了小米公司JavaScript面试题的个人解题方法,需要的朋友可以参考下
    2014-12-12
  • 纯js实现动态时间显示

    纯js实现动态时间显示

    这篇文章主要为大家详细介绍了纯js实现动态时间显示,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-06-06

最新评论