PDA

View Full Version : bug in javascript


petertran123
01-24-2003, 02:09 PM
can someone please help me with this bug. When i ran this code it gives me an error msg " can not assign to this @ line 109

*************begin********************
<html>
<head>
<TITLE>Hi </TITLE>
</head>
<body bgcolor="#BABAFF">
<script language="Jscript">
<!--
var col=new Array(
"black","red","violet","teal","brown","lightgreen","blue",
"green","pink","gray","cyan","AQUA","AQUAMARINE",
"BISQUE","BLANCHEDALMOND","BLUEVIOLET",
"DARKORANGE","GOLD","GREENYELLOW","HOTPINK",
"DARKORCHID","DARKRED","DARKSLATEGRAY",
"DARKSLATEBLUE","DARKSEAGREEN","DARKSALMON",
"BURLYWOOD","CADETBLUE","CHARTREUSE","CHOCOLATE",
"DEEPSKYBLUE","FIREBRICK","DODGERBLUE","DIMGRAY",
"FORESTGREEN","GAINSBORO","GOLDENROD",
"CRIMSON","CORAL","DARKBLUE","DARKCYAN",
"DARKGOLDENROD","DARKMAGENTA","DARKKHAKI",
"DARKGREEN","DARKGRAY","DARKOLIVEGREEN",
"DARKTURQUOISE","DARKVIOLET","DEEPPINK",
"INDIANRED","LAVENDER","KHAKI","INDIGO",
"LIGHTBLUE","LAWNGREEN","TOMATO"
);
var L=col.length;
var blink_speed=300;
var j=1,c=1,sizeBegin=15,sizeIncreate=3,sizeEnd=50;
var count=sizeBegin;

function Blink1(Name){
eval('document.all["'+Name+'"].style.fontSize=count');
//eval('document.all["'+Name+'"].style.color=col[j]');
if((count>=sizeEnd)||(count<sizeBegin))
sizeIncreate=-sizeIncreate;
count=count+sizeIncreate;
if((j>=L)||(j<1)) c=-c;
j=j+c;
setTimeout("Blink1('"+Name+"')",blink_speed);
}// end of Blink

function Blink2(layer,begin,increate,end,speed){
if(end>sizeEnd) sizeEnd=end;
if(increate>sizeIncreate) sizeIncreate=increate;
if(begin>sizeBegin) sizeBegin=begin;
blink_speed=speed;
Blink1(layer);
}//end of Wave

function Wave(m,sB,sI,sE,sp,iB){
var coll=document.all.item(m);
if (coll!=0){ //if 1
coll.style.display="none";
var str=coll.innerHTML;
var l=str.length;
var count=l;
var strArray=new Array();
var n,s;
//var sp=Speed,sE=55,sI=5,sB=15,iB=3;
var s1="Blink2('",s2=",sI,sE,sp);";
for(n=0;n<l;n++)
strArray[n]=str.substr(n,1);
for(n=0;n<l;n++){
if (strArray[n]=='<')
while(strArray[n] !=">"){
document.write(strArray[n]);
n++;

}
if (strArray[n]=='>') {document.write(strArray[n]);n++;}
//if (strArray[n]==' ') {document.write(" ");n++;}
s="<span id='"+m+"Wave"+n+"'>"+strArray[n]+"</span>";
document.write(s);
s=s1+m+"Wave"+n+"',"+sB+s2;
eval(s);
if((sB>19)||(sB<15)) iB=-iB;
sB=sB+iB;
}//end of for
}//end of if 1
}//end of waveF

function Wave1(m){Wave(m,15,5,55,250,3);}
function Wave2(m,Speed){Wave(m,15,5,55,Speed,3);}

-->
</script>
<center>
<p id='m'>Welcome to OME - HUT
</p>
<script language="Jscript">
<!--
Wave("m",13,4,50,200,1);
-->
</script>
</center>
<p>
<br><br><br>
<center>
<font size=+3>
<script language="Javascript">
<!--
function initArray() {
this.length = initArray.arguments.length;
for (var i = 0; i < this.length; i++) {
this = initArray.arguments;
}
}
var ctext = "Chúc các bạn một ngày vui vẻ"
var speed =700;
var x =0;
var color = new initArray("RED","AQUA","VIOLET","BISQUE","BROWN","TEAL","BLUE","BLACK","AQUAMARINE","GRAY","CHOCOLATE","CRIMSON","DARKORANGE","DARKORCHID");
if(navigator.appName == "Netscape") {
document.write('<layer id="c">'+ctext+'</layer><br>');
}

if (navigator.appVersion.indexOf("MSIE") != -1){
document.write('<div id="c">'+ctext+'</div>');
}
function chcolor(){
if(navigator.appName == "Netscape") {
document.c.document.write('<font color="'+color[x]+'">'
+ctext+'</font>');
document.c.document.close();
}
else if (navigator.appVersion.indexOf("MSIE") != -1){
document.all.c.style.color = color[x];
}
(x < color.length-1) ? x++ : x=0;
}

setInterval("chcolor()",speed)
-->
</script>
</font>
</center>
</body></html>

*****************end********************

Thanks,

mordred
01-24-2003, 02:49 PM
And where is line 108? You surely don't expect us to count lines in your example.

arnyinc
01-24-2003, 03:48 PM
I'm bad with objects, but the following line looks odd. I don't think you can assign something to "this" like that.

this = initArray.arguments;

petertran123
01-24-2003, 03:53 PM
i'm sorry, the error at line 109 var x = 0

petertran123
01-24-2003, 06:45 PM
thanks, the bug has being fixed

Tails
01-24-2003, 07:02 PM
Personally, I'd use the DOS edit.com / edit.exe to edit scripts. It displays lines and colums and it won't run out of memory on big pages like notepad (Edit can hold up to 64000 lines or 2 GB I think). But a 3rd party editor would be even better.

Is there an editor that automatically puts quoted things a different color? I've seen this in C compilers and I like it. I just want something with stuff like that for HTML and Script, etc.

Danne
01-24-2003, 07:54 PM
Originally posted by Tails

Is there an editor that automatically puts quoted things a different color? I've seen this in C compilers and I like it. I just want something with stuff like that for HTML and Script, etc.

I use editplus. It has those features.
Look at http://www.editplus.com/.

And it is very flexible if you want to personalize some stuff, like templates.