Question : MM_preloadImages(), what does "#" in the passed argument mean, why do that.

Simple question.  I am working on some old code from someone else that has the (in)famous Dreamweaver rollover code in it.  Not real easy to decipher the details, although easy enough to use.  I think I basically get it except for 2 things.

1.  Why does it check for the first character of a passed argument being not equal to '#'.  In most examples the arguments passed are just paths to images, separated by a ',' if multiple.  There are some examples where something like '#99999999' is passed in as well.  Why/what is that.

2.  What does MM_findObj(n, d) do.

3.  Is there a better substitute for this now (i.e. jQuery or something).  The code is kind of messing up the looks of the page.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
<script language="JavaScript">
<!--hide this script from non-javascript-enabled browsers

function MM_findObj(n, d) { //v3.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}
/* Functions that swaps images. */
function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

/* Functions that handle preload. */
function MM_preloadImages() { //v3.0
 var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
   var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
   if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

// stop hiding -->
</script>

Answer : MM_preloadImages(), what does "#" in the passed argument mean, why do that.

This code:

if (a[i].indexOf("#")!=0)

checks for the *occurrence* of an octothorpe (or "#"), not just the first character. If found, then the item is an image.
Random Solutions  
 
programming4us programming4us