Javascript parses in some way the string parameters of functions? -
when try pass string function so
i="file:///bla/bla/bla"; fade(i);   i uncaught syntaxerror: unexpected token :
so tried passing literal in function f("img1.jpg"); , got
uncaught referenceerror: img1 not defined (anonymous function)   what going on?
(note kind of new in js)
in particular:
timeout = 3; var fadetime = 5; var curr = 0;  var fadedelta = 100/(fadetime*30); var opac = 100;  //var fadedelta = 100/(fadetime*3); //prelaod images have them there var namearr = new array( "img1.jpg", "img2.jpg", "img3.jpg", "img4.jpg"); var imgarr = new array();  var = 0; for( = 0; i<2 ; i++) {     var tmp = new image()     tmp.src = namearr[i];     imgarr.push(tmp);  }  function setopacity(image, op) {     if(typeof(image.filters) != 'undefined' )     {         image.filters.alpha.opacity = op;     }     else     {         image.style.opacity = op/100;     } }  function fadein(isrc) {     var locimg = document.getelementbyid("image");     opac -=fadedelta;     setopacity(locimg,opac);     if(opac>0)     {         settimeout("fadein(string("+isrc+"));", 30);     }     else     {         locimg.src = isrc;         setopacity(locimg,100);         opac=100;     } }   function fade(isrc) {     var locimg = document.getelementbyid("image");     var locdiv = document.getelementbyid("imagearea");      locdiv.style.backgroundimage = "url("+isrc+")";     fadein(isrc); }  function astatus() {     var locimg = document.getelementbyid("image");     var locdiv = document.getelementbyid("imagearea");      alert("background: "+locdiv.style.backgroundimage+"\nforeground: "+locimg.src+"\ncurr: "+curr); }  function onclick() {     curr = curr + 1;     curr%=imgarr.length;     fade(string(""+imgarr[curr].src)); }   and output uncaught syntaxerror: unexpected token : error refering line before last (fade(string(imgarr[curr].src));)
note imgarr[curr].src file:///home/fakedrake/webdev/img1.jpg or file:///home/fakedrake/webdev/img2.jpg depending on value of curr
i got totally different error, “missing ) after argument list” on line
fadein(file:///some/local/file.jpg);   however, problem same: interpreter thinks fadein gets variable name (in case file:///some/local/file.jpg, not valid identifier) instead of string.
the solution simple: add single quotes to
settimeout("fadein('"+isrc+"')", 30);     // here        ^        ^      
Comments
Post a Comment