高手帮忙解决下javascript问题

ykksqq520 2009-03-17 10:53:04
<script language=javascript type=text/javascript >
var scrollPic_1 = new ScrollPic();
scrollPic_1.scrollContId = "ISL_Cont_1"; scrollPic_1.arrLeftId = "LeftArr1"; scrollPic_1.arrRightId = "RightArr1";
scrollPic_1.frameWidth = 890; scrollPic_1.pageWidth = 90; scrollPic_1.speed = 10; scrollPic_1.space = 5;
scrollPic_1.autoPlay = false; scrollPic_1.autoPlayTime = 1; scrollPic_1.initialize();</SCRIPT>


以上内容是我在C#中以字符串的形式打出来的,因为var scrollipc是循环生成的,在IE7,FF均调试通过,可是在IE6下就报ScrollPic没定义,怎么解决
...全文
333 点赞 收藏 31
写回复
31 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
香巴拉 2009-06-09
lotusprince 谢谢你 帮我解决了问题,哈哈
回复
ykksqq520 2009-03-18
up一下
回复
wclszh 2009-03-18
没接触过、顶一下
回复
lotusprince 2009-03-18

<style>
img{width:110px;}
div{float:left;padding-right:8px;}
</style>

</head>
<body>
<div id="ISL_Cont_1" style="border:1px #f00 solid;">
<img src="http://www.baidu.com/img/baidu_logo.gif">
<img src="http://www.baidu.com/img/baidu_logo.gif">
<img src="http://www.baidu.com/img/baidu_logo.gif">
<img src="http://www.baidu.com/img/baidu_logo.gif">
<img src="http://www.baidu.com/img/baidu_logo.gif">
<img src="http://www.baidu.com/img/baidu_logo.gif">
<img src="http://www.baidu.com/img/baidu_logo.gif">
<img src="http://www.baidu.com/img/baidu_logo.gif">
</div>

<SCRIPT>
var scrollPic_1 = new ScrollPic();
scrollPic_1.scrollContId = "ISL_Cont_1";
scrollPic_1.arrLeftId = "LeftArr1";
scrollPic_1.arrRightId = "RightArr1";
scrollPic_1.frameWidth = 820;
scrollPic_1.pageWidth = 118;
scrollPic_1.speed = 10;
scrollPic_1.space = 5;
//scrollPic_1.autoPlay = false;
scrollPic_1.autoPlay = true;
scrollPic_1.autoPlayTime = 1;
scrollPic_1.initialize();
</SCRIPT>


改了一下,我这边测试IE 6 + , ff 3+ 已经可以了!
回复
lotusprince 2009-03-18

<script>
var sina={
$:function (objName) {
if(document.getElementById) {
return eval('document.getElementById("'+objName+'")');
}else {
return eval('document.all.'+objName);
}
},
isIE:navigator.appVersion.indexOf("MSIE")!=-1?true:false,addEvent:function (l,i,I) {
if(l.attachEvent) {
l.attachEvent("on"+i,I);
}else {
l.addEventListener(i,I,false);
}
},
delEvent:function (l,i,I) {
if(l.detachEvent) {
l.detachEvent("on"+i,I);
}else {
l.removeEventListener(i,I,false);
}
},
//readCookie//writeCookie
readStyle:function (I,l) {
if(I.style[l]) {
return I.style[l];
}else if(I.currentStyle) {
return I.currentStyle[l];
}else if(document.defaultView&&document.defaultView.getComputedStyle) {
var i=document.defaultView.getComputedStyle(I,null);
return i.getPropertyValue(l);
}else {
return null;
}
}
};
var ScrollPic=function(scrollContId,arrLeftId,arrRightId,dotListId)
{
this.scrollContId=scrollContId;
this.arrLeftId=arrLeftId;
this.arrRightId=arrRightId;
this.dotListId=dotListId;
this.dotClassName="dotItem";
this.dotOnClassName="dotItemOn";
this.dotObjArr=[];
this.pageWidth=0;
this.frameWidth=0;
this.speed=10;
this.space=10;
this.pageIndex=0;
this.autoPlay=true;
this.autoPlayTime=5;
var _autoTimeObj,_scrollTimeObj,_state="ready";
this.stripDiv=document.createElement("DIV");
this.listDiv01=document.createElement("DIV");
this.listDiv02=document.createElement("DIV");
if(!ScrollPic.childs) {
ScrollPic.childs=[];
};
this.ID=ScrollPic.childs.length;
ScrollPic.childs.push(this);
this.initialize=function ()
{
if(!this.scrollContId) {
throw new Error("必须指定scrollContId.");
return
};
this.scrollContDiv=sina.$(this.scrollContId);
if(!this.scrollContDiv) {
throw new Error("scrollContId不是正确的对象.(scrollContId = \""+this.scrollContId+"\")");
return
};
this.scrollContDiv.style.width=this.frameWidth+"px";
this.scrollContDiv.style.overflow="hidden";
this.listDiv01.innerHTML=this.listDiv02.innerHTML=this.scrollContDiv.innerHTML;
this.scrollContDiv.innerHTML="";
this.scrollContDiv.appendChild(this.stripDiv);
this.stripDiv.appendChild(this.listDiv01);
this.stripDiv.appendChild(this.listDiv02);
this.stripDiv.style.overflow="hidden";
this.stripDiv.style.zoom="1";
this.stripDiv.style.width="32766px";
this.listDiv01.style.cssFloat="left";
this.listDiv02.style.cssFloat="left";
sina.addEvent(this.scrollContDiv,"mouseover",Function("ScrollPic.childs["+this.ID+"].stop()"));
sina.addEvent(this.scrollContDiv,"mouseout",Function("ScrollPic.childs["+this.ID+"].play()"));
if(this.arrLeftId) {
this.arrLeftObj=sina.$(this.arrLeftId);
if(this.arrLeftObj) {
sina.addEvent(this.arrLeftObj,"mousedown",Function("ScrollPic.childs["+this.ID+"].rightMouseDown()"));
sina.addEvent(this.arrLeftObj,"mouseup",Function("ScrollPic.childs["+this.ID+"].rightEnd()"));
sina.addEvent(this.arrLeftObj,"mouseout",Function("ScrollPic.childs["+this.ID+"].rightEnd()"));
}
};
if(this.arrRightId) {
this.arrRightObj=sina.$(this.arrRightId);
if(this.arrRightObj) {
sina.addEvent(this.arrRightObj,"mousedown",Function("ScrollPic.childs["+this.ID+"].leftMouseDown()"));
sina.addEvent(this.arrRightObj,"mouseup",Function("ScrollPic.childs["+this.ID+"].leftEnd()"));
sina.addEvent(this.arrRightObj,"mouseout",Function("ScrollPic.childs["+this.ID+"].leftEnd()"));
}
};
if(this.dotListId) {
this.dotListObj=sina.$(this.dotListId);
if(this.dotListObj) {
var pages=Math.round(this.listDiv01.offsetWidth/this.frameWidth+0.4),i,tempObj;
for(i=0;i<pages;i++) {
tempObj=document.createElement("span");
this.dotListObj.appendChild(tempObj);
this.dotObjArr.push(tempObj);
if(i==this.pageIndex) {
tempObj.className=this.dotClassName;
}else {
tempObj.className=this.dotOnClassName;
};
tempObj.title="第"+(i+1)+"页";
sina.addEvent(tempObj,"click",Function("ScrollPic.childs["+this.ID+"].pageTo("+i+")"));
}
}
};
if(this.autoPlay) {
this.play();
}
};
this.leftMouseDown=function () {
if(_state!="ready") {
return;
};
_state="floating";
_scrollTimeObj=setInterval("ScrollPic.childs["+this.ID+"].moveLeft()",this.speed);
};
this.rightMouseDown=function () {
if(_state!="ready") {
return;
};
_state="floating";
_scrollTimeObj=setInterval("ScrollPic.childs["+this.ID+"].moveRight()",this.speed)
};
this.moveLeft=function () {
if(this.scrollContDiv.scrollLeft+this.space>=this.listDiv01.scrollWidth) {
this.scrollContDiv.scrollLeft=this.scrollContDiv.scrollLeft+this.space-this.listDiv01.scrollWidth;
}else {
this.scrollContDiv.scrollLeft+=this.space;
};
this.accountPageIndex()
};
this.moveRight=function () {
if(this.scrollContDiv.scrollLeft-this.space<=0) {
this.scrollContDiv.scrollLeft=this.listDiv01.scrollWidth+this.scrollContDiv.scrollLeft-this.space
}else {
this.scrollContDiv.scrollLeft-=this.space;
};
this.accountPageIndex();
};
this.leftEnd=function () {
if(_state!="floating") {
return
};
_state="stoping";
clearInterval(_scrollTimeObj);
var fill=this.pageWidth-this.scrollContDiv.scrollLeft%this.pageWidth;
this.move(fill);
};
this.rightEnd=function () {
if(_state!="floating") {
return;
};
_state="stoping";
clearInterval(_scrollTimeObj);
var fill=-this.scrollContDiv.scrollLeft%this.pageWidth;
this.move(fill);
};
this.move=function (num,quick) {
var thisMove=num/5;
if(!quick) {
if(thisMove>this.space) {
thisMove=this.space;
};
if(thisMove<-this.space) {
thisMove=-this.space;
}
};
if(Math.abs(thisMove)<1&&thisMove!=0) {
thisMove=thisMove>=0?1:-1;
}else {
thisMove=Math.round(thisMove);
};
var temp=this.scrollContDiv.scrollLeft+thisMove;
if(thisMove>0) {
if(this.scrollContDiv.scrollLeft+thisMove>=this.listDiv01.scrollWidth) {
this.scrollContDiv.scrollLeft=this.scrollContDiv.scrollLeft+thisMove-this.listDiv01.scrollWidth;
}else {
this.scrollContDiv.scrollLeft+=thisMove;
}
}else {
if(this.scrollContDiv.scrollLeft-thisMove<=0) {
this.scrollContDiv.scrollLeft=this.listDiv01.scrollWidth+this.scrollContDiv.scrollLeft-thisMove;
}else {
this.scrollContDiv.scrollLeft+=thisMove;
}
};
num-=thisMove;
if(Math.abs(num)==0) {
_state="ready";
if(this.autoPlay) {
this.play();
};
this.accountPageIndex();
return
}else {
this.accountPageIndex();
setTimeout("ScrollPic.childs["+this.ID+"].move("+num+","+quick+")",this.speed);
}
};
this.next=function () {
if(_state!="ready") {
return
};
_state="stoping";
this.move(this.pageWidth,true)
};
this.play=function () {
if(!this.autoPlay) {
return;
};
clearInterval(_autoTimeObj);
_autoTimeObj=setInterval("ScrollPic.childs["+this.ID+"].next()",this.autoPlayTime*1000);
};
this.stop=function () {
clearInterval(_autoTimeObj);
};
this.pageTo=function (num) {
if(_state!="ready") {
return;
};
_state="stoping";
var fill=num*this.frameWidth-this.scrollContDiv.scrollLeft;
this.move(fill,true);
};
this.accountPageIndex=function () {
this.pageIndex=Math.round(this.scrollContDiv.scrollLeft/this.frameWidth);
if(this.pageIndex>Math.round(this.listDiv01.offsetWidth/this.frameWidth+0.4)-1) {
this.pageIndex=0;
};
var i;
for(i=0;i<this.dotObjArr.length;i++) {
if(i==this.pageIndex) {
this.dotObjArr[i].className=this.dotClassName;
}else {
this.dotObjArr[i].className=this.dotOnClassName;
}
}
}
};

</SCRIPT>

回复
ykksqq520 2009-03-17
[Quote=引用 11 楼 Free_Wind22 的回复:]
用DW打开js文件,按Ctrl+J就可以看得到文件的编码了
[/Quote]


已经都改为GB2312了,还是不行
回复
ykksqq520 2009-03-17
[Quote=引用 10 楼 lotusprince 的回复:]
你这样定义:


JScript code
var ScrollPic=function(scrollContId,arrLeftId,arrRightId,dotListId)
{
// code here
}




然后去调用 : new ScrollPic() 试试!
[/Quote]

一样,IE6下不成功,IE7中可以
回复
2009-03-17
用DW打开js文件,按Ctrl+J就可以看得到文件的编码了
回复
lotusprince 2009-03-17
你这样定义:


var ScrollPic=function(scrollContId,arrLeftId,arrRightId,dotListId)
{
// code here
}


然后去调用 : new ScrollPic() 试试!
回复
ykksqq520 2009-03-17
怎么看JS编码????
回复
2009-03-17
检测下你网页和JS文件的编码是不是一样.
回复
ykksqq520 2009-03-17
var sina={$:function(objName){if(document.getElementById){return eval('document.getElementById("'+objName+'")')}else{return eval('document.all.'+objName)}},isIE:navigator.appVersion.indexOf("MSIE")!=-1?true:false,addEvent:function(l,i,I){if(l.attachEvent){l.attachEvent("on"+i,I)}else{l.addEventListener(i,I,false)}},delEvent:function(l,i,I){if(l.detachEvent){l.detachEvent("on"+i,I)}else{l.removeEventListener(i,I,false)}},readCookie:function(O){var o="",l=O+"=";if(document.cookie.length>0){var i=document.cookie.indexOf(l);if(i!=-1){i+=l.length;var I=document.cookie.indexOf(";",i);if(I==-1)I=document.cookie.length;o=unescape(document.cookie.substring(i,I))}};return o},writeCookie:function(i,l,o,c){var O="",I="";if(o!=null){O=new Date((new Date).getTime()+o*3600000);O="; expires="+O.toGMTString()};if(c!=null){I=";domain="+c};document.cookie=i+"="+escape(l)+O+I},readStyle:function(I,l){if(I.style[l]){return I.style[l]}else if(I.currentStyle){return I.currentStyle[l]}else if(document.defaultView&&document.defaultView.getComputedStyle){var i=document.defaultView.getComputedStyle(I,null);return i.getPropertyValue(l)}else{return null}}};

//滚动图片构造函数
//UI&UE Dept. mengjia
//080623
function ScrollPic(scrollContId,arrLeftId,arrRightId,dotListId)
{this.scrollContId=scrollContId;
this.arrLeftId=arrLeftId;
this.arrRightId=arrRightId;
this.dotListId=dotListId;
this.dotClassName="dotItem";
this.dotOnClassName="dotItemOn";
this.dotObjArr=[];
this.pageWidth=0;
this.frameWidth=0;
this.speed=10;this.space=10;
this.pageIndex=0;
this.autoPlay=true;
this.autoPlayTime=5;
var _autoTimeObj,_scrollTimeObj,_state="ready";
this.stripDiv=document.createElement("DIV");
this.listDiv01=document.createElement("DIV");
this.listDiv02=document.createElement("DIV");
if(!ScrollPic.childs){ScrollPic.childs=[]};
this.ID=ScrollPic.childs.length;ScrollPic.childs.push(this);
this.initialize=function()
{if(!this.scrollContId){throw new Error("必须指定scrollContId.");
return};
this.scrollContDiv=sina.$(this.scrollContId);
if(!this.scrollContDiv){throw new Error("scrollContId不是正确的对象.(scrollContId = \""+this.scrollContId+"\")");
return};
this.scrollContDiv.style.width=this.frameWidth+"px";
this.scrollContDiv.style.overflow="hidden";
this.listDiv01.innerHTML=this.listDiv02.innerHTML=this.scrollContDiv.innerHTML;this.scrollContDiv.innerHTML="";this.scrollContDiv.appendChild(this.stripDiv);this.stripDiv.appendChild(this.listDiv01);this.stripDiv.appendChild(this.listDiv02);this.stripDiv.style.overflow="hidden";this.stripDiv.style.zoom="1";this.stripDiv.style.width="32766px";this.listDiv01.style.cssFloat="left";this.listDiv02.style.cssFloat="left";sina.addEvent(this.scrollContDiv,"mouseover",Function("ScrollPic.childs["+this.ID+"].stop()"));sina.addEvent(this.scrollContDiv,"mouseout",Function("ScrollPic.childs["+this.ID+"].play()"));if(this.arrLeftId){this.arrLeftObj=sina.$(this.arrLeftId);if(this.arrLeftObj){sina.addEvent(this.arrLeftObj,"mousedown",Function("ScrollPic.childs["+this.ID+"].rightMouseDown()"));sina.addEvent(this.arrLeftObj,"mouseup",Function("ScrollPic.childs["+this.ID+"].rightEnd()"));sina.addEvent(this.arrLeftObj,"mouseout",Function("ScrollPic.childs["+this.ID+"].rightEnd()"))}};if(this.arrRightId){this.arrRightObj=sina.$(this.arrRightId);if(this.arrRightObj){sina.addEvent(this.arrRightObj,"mousedown",Function("ScrollPic.childs["+this.ID+"].leftMouseDown()"));sina.addEvent(this.arrRightObj,"mouseup",Function("ScrollPic.childs["+this.ID+"].leftEnd()"));sina.addEvent(this.arrRightObj,"mouseout",Function("ScrollPic.childs["+this.ID+"].leftEnd()"))}};if(this.dotListId){this.dotListObj=sina.$(this.dotListId);if(this.dotListObj){var pages=Math.round(this.listDiv01.offsetWidth/this.frameWidth+0.4),i,tempObj;for(i=0;i<pages;i++){tempObj=document.createElement("span");this.dotListObj.appendChild(tempObj);this.dotObjArr.push(tempObj);if(i==this.pageIndex){tempObj.className=this.dotClassName}else{tempObj.className=this.dotOnClassName};tempObj.title="第"+(i+1)+"页";sina.addEvent(tempObj,"click",Function("ScrollPic.childs["+this.ID+"].pageTo("+i+")"))}}};if(this.autoPlay){this.play()}};this.leftMouseDown=function(){if(_state!="ready"){return};_state="floating";_scrollTimeObj=setInterval("ScrollPic.childs["+this.ID+"].moveLeft()",this.speed)};this.rightMouseDown=function(){if(_state!="ready"){return};_state="floating";_scrollTimeObj=setInterval("ScrollPic.childs["+this.ID+"].moveRight()",this.speed)};this.moveLeft=function(){if(this.scrollContDiv.scrollLeft+this.space>=this.listDiv01.scrollWidth){this.scrollContDiv.scrollLeft=this.scrollContDiv.scrollLeft+this.space-this.listDiv01.scrollWidth}else{this.scrollContDiv.scrollLeft+=this.space};this.accountPageIndex()};this.moveRight=function(){if(this.scrollContDiv.scrollLeft-this.space<=0){this.scrollContDiv.scrollLeft=this.listDiv01.scrollWidth+this.scrollContDiv.scrollLeft-this.space}else{this.scrollContDiv.scrollLeft-=this.space};this.accountPageIndex()};this.leftEnd=function(){if(_state!="floating"){return};_state="stoping";clearInterval(_scrollTimeObj);var fill=this.pageWidth-this.scrollContDiv.scrollLeft%this.pageWidth;this.move(fill)};this.rightEnd=function(){if(_state!="floating"){return};_state="stoping";clearInterval(_scrollTimeObj);var fill=-this.scrollContDiv.scrollLeft%this.pageWidth;this.move(fill)};this.move=function(num,quick){var thisMove=num/5;if(!quick){if(thisMove>this.space){thisMove=this.space};if(thisMove<-this.space){thisMove=-this.space}};if(Math.abs(thisMove)<1&&thisMove!=0){thisMove=thisMove>=0?1:-1}else{thisMove=Math.round(thisMove)};var temp=this.scrollContDiv.scrollLeft+thisMove;if(thisMove>0){if(this.scrollContDiv.scrollLeft+thisMove>=this.listDiv01.scrollWidth){this.scrollContDiv.scrollLeft=this.scrollContDiv.scrollLeft+thisMove-this.listDiv01.scrollWidth}else{this.scrollContDiv.scrollLeft+=thisMove}}else{if(this.scrollContDiv.scrollLeft-thisMove<=0){this.scrollContDiv.scrollLeft=this.listDiv01.scrollWidth+this.scrollContDiv.scrollLeft-thisMove}else{this.scrollContDiv.scrollLeft+=thisMove}};num-=thisMove;if(Math.abs(num)==0){_state="ready";if(this.autoPlay){this.play()};this.accountPageIndex();return}else{this.accountPageIndex();setTimeout("ScrollPic.childs["+this.ID+"].move("+num+","+quick+")",this.speed)}};this.next=function(){if(_state!="ready"){return};_state="stoping";this.move(this.pageWidth,true)};this.play=function(){if(!this.autoPlay){return};clearInterval(_autoTimeObj);_autoTimeObj=setInterval("ScrollPic.childs["+this.ID+"].next()",this.autoPlayTime*1000)};this.stop=function(){clearInterval(_autoTimeObj)};this.pageTo=function(num){if(_state!="ready"){return};_state="stoping";var fill=num*this.frameWidth-this.scrollContDiv.scrollLeft;this.move(fill,true)};this.accountPageIndex=function(){this.pageIndex=Math.round(this.scrollContDiv.scrollLeft/this.frameWidth);if(this.pageIndex>Math.round(this.listDiv01.offsetWidth/this.frameWidth+0.4)-1){this.pageIndex=0};var i;for(i=0;i<this.dotObjArr.length;i++){if(i==this.pageIndex){this.dotObjArr[i].className=this.dotClassName}else{this.dotObjArr[i].className=this.dotOnClassName}}}};
回复
ykksqq520 2009-03-17
initialize() 这个方法是有的,在另外一个JS文件里面,我头部已经引用了这个JS文件了
回复
ykksqq520 2009-03-17
错误是没有了.但是效果也没有啊
回复
mumu_java 2009-03-17
对像不支持此属性或方法说的是ScrollPic_1中没有initialize()这个方法,这个报错是正确的.lz应该先为定义这个函数.
回复
yixianggao 2009-03-17
L@_@K
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
<meta name="generator" content="editplus" />
<meta name="author" content="" />
<meta name="keywords" content="" />
<meta name="description" content="" />
</head>

<body>
<script language=javascript type=text/javascript >
function ScrollPic() {}
var scrollPic_1 = new ScrollPic();
scrollPic_1.scrollContId = "ISL_Cont_1";
scrollPic_1.arrLeftId = "LeftArr1";
scrollPic_1.arrRightId = "RightArr1";
scrollPic_1.frameWidth = 890;
scrollPic_1.pageWidth = 90;
scrollPic_1.speed = 10;
scrollPic_1.space = 5;
scrollPic_1.autoPlay = false;
scrollPic_1.autoPlayTime = 1;
// 下面这个方法没定义!!!
//scrollPic_1.initialize(); </SCRIPT>
</body>
</html>
回复
ykksqq520 2009-03-17
不行,加了这句报对像不支持此属性或方法
回复
yixianggao 2009-03-17
加一句 function ScrollPic() {}
L@_@K
  <script language=javascript type=text/javascript >
function ScrollPic() {}
var scrollPic_1 = new ScrollPic();
scrollPic_1.scrollContId = "ISL_Cont_1"; scrollPic_1.arrLeftId = "LeftArr1"; scrollPic_1.arrRightId = "RightArr1";
scrollPic_1.frameWidth = 890; scrollPic_1.pageWidth = 90; scrollPic_1.speed = 10; scrollPic_1.space = 5;
scrollPic_1.autoPlay = false; scrollPic_1.autoPlayTime = 1; scrollPic_1.initialize(); </SCRIPT>
回复
liyancc 2009-03-17
学习~~~~
回复
ykksqq520 2009-03-17
不知道怎么搞的,还是有分号错误
回复
加载更多回复
相关推荐
发帖
JavaScript
创建于2007-09-28

8.5w+

社区成员

Web 开发 JavaScript
申请成为版主
帖子事件
创建了帖子
2009-03-17 10:53
社区公告
暂无公告