KavenYan
小狐狸
小狐狸
  • UID7238
  • 注册日期2005-07-11
  • 最后登录2006-01-12
  • 发帖数19
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
阅读:6152回复:4

FF,iframe的scrollTo问题

楼主#
更多 发布于:2005-08-04 17:41
想通过点击按钮,使页面中的iframe包含的news.htm网页滚动,但是在非IE下效果不能实现,可能&FF对scrollTo或者scroll解释有关,尝试了n次,还是未搞定,网上也没有找到合适的代码,大虾指点一下。
可以直接浏览[url=http://www.dancewithnet.com/temp1/index.htm]http://www.dancewithnet.com/temp1/index.htm[/url]

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-Strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
<!--
body{text-align:center}
div{border:1px solid #000;margin:0 auto;width:300px}
iframe{width:300px;height:300px}
span{color:#c0c0c0}
-->
</style>
<script type="text/javascript">
//<![CDATA[
function mov(a){
		news=window.news
        scrollx=news.document.body.scrollLeft?news.document.body.scrollLeft:news.document.documentElement.scrollLeft;
        scrolly=news.document.body.scrollTop?news.document.body.scrollTop:news.document.documentElement.scrollTop;
        scrolly+=a;
        news.window.scrollTo(scrollx,scrolly);
        }
function movstar(a,time){ movx=setInterval("mov("+a+")",time)}
function movover(){clearInterval(movx)}
//]]>
</script>
</head>

<body>
<div>
<iframe id="news" name="news" src="news.htm" scrolling="no"></iframe>
<a onmouseup="movover();movstar(-1,20)"  onmousedown="movover();movstar(-3,2)" onmouseover="movstar(-1,20);" 
 onmouseout="movover()" title="向上滚动...按住将滚动得更快">&&</a> <span>--按住将滚动更快--</span><a onmouseup="movover();movstar(1,20)"  onmousedown="movover();movstar(3,2)" onmouseover="movstar(1,20)" 
            onmouseout="movover()" title="向下滚动...按住将滚动得更快" >&&</a>
</div>
</body>
</html>


谢谢。
送人玫瑰之手,历久犹有余香。
cnsc
火狐狸
火狐狸
  • UID4708
  • 注册日期2005-04-04
  • 最后登录2014-03-26
  • 发帖数168
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
1楼#
发布于:2005-08-04 17:41
不懂,楼下
KavenYan
小狐狸
小狐狸
  • UID7238
  • 注册日期2005-07-11
  • 最后登录2006-01-12
  • 发帖数19
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
2楼#
发布于:2005-08-04 17:41
楼下还在等楼下来解决阿。
送人玫瑰之手,历久犹有余香。
Minisheep
小狐狸
小狐狸
  • UID2333
  • 注册日期2005-01-19
  • 最后登录2006-10-23
  • 发帖数80
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
3楼#
发布于:2005-08-04 17:41
function mov(a){
	if (document.getElementById){
		news = document.getElementById("news");
	}
	else{
		eval('news = "news";');
	}
	if (news.contentDocument){
		//ns6 syntax
		scrollx=news.contentWindow.pageXOffset;
		scrolly=news.contentWindow.pageYOffset;
		scrolly+=a;
		news.contentWindow.scrollTo(scrollx,scrolly);
	}
	else if (news.document){
		//ie5+ syntax
		scrollx=news.document.body.scrollLeft?news.document.body.scrollLeft:news.document.documentElement.scrollLeft;
		scrolly=news.document.body.scrollTop?news.document.body.scrollTop:news.document.documentElement.scrollTop;
		scrolly+=a;
		news.window.scrollTo(scrollx,scrolly);
	}
}

代替原来的mov函数
这是由于Firefox与IE之间DOM的不同造成的,所以要分别为两个浏览器编写不同的代码
这个我是比较讨厌的。还好不是很麻烦
KavenYan
小狐狸
小狐狸
  • UID7238
  • 注册日期2005-07-11
  • 最后登录2006-01-12
  • 发帖数19
  • 经验10枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
4楼#
发布于:2005-08-04 17:41
非常的棒,谢谢楼上,我要好好研究研究。
javascript,html dom,xmldom,中ie&ff的确有非常多的不同,我目前没有找到这方面很好的资料,只好一边学一边做了,楼上有这方面的资料不?谢谢
送人玫瑰之手,历久犹有余香。
游客

返回顶部