What is this javascript for [solved]

JavaScript and client side scripting.

Moderator: General Moderators

Post Reply
matthijs
DevNet Master
Posts: 3360
Joined: Thu Oct 06, 2005 3:57 pm

What is this javascript for [solved]

Post by matthijs »

My js skills are really lacking unfortunately, so I turn to you for this hopefully simple question: what does this script do?

Code: Select all

<!--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;
 }
 // stop hiding -->
It's from a site I'm cleaning up. The site uses one frame so I guess it has to do something with that. I already ditched some rollover and image preloadingscripts but I'm not sure if this one is needed. Thanks!
Last edited by matthijs on Fri Mar 17, 2006 6:06 am, edited 1 time in total.
User avatar
Weirdan
Moderator
Posts: 5978
Joined: Mon Nov 03, 2003 6:13 pm
Location: Odessa, Ukraine

Post by Weirdan »

Code: Select all

<!--hide this script from non-javascript-enabled browsers
// finds the element in the current frame given its name or id
// you can use <name>?<frame> notation to search for an element in another frame
 function MM_findObj(n, d) { //v3.0;     d - root element to search in
     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;
 }
 // stop hiding -->
matthijs
DevNet Master
Posts: 3360
Joined: Thu Oct 06, 2005 3:57 pm

Post by matthijs »

A thanks Weirdan. Sorry about the unreadable mess.

I think I understand the function now. It's used inside the image swap function and preload function:

Code: Select all

<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>
Am I correct?
User avatar
Weirdan
Moderator
Posts: 5978
Joined: Mon Nov 03, 2003 6:13 pm
Location: Odessa, Ukraine

Post by Weirdan »

Code: Select all

Am I correct?
You are.

[rant]Dreamweaver js sucks =( [/rant]
matthijs
DevNet Master
Posts: 3360
Joined: Thu Oct 06, 2005 3:57 pm

[SOLVED]

Post by matthijs »

Ok thats nice to know, thanks. Another 10 lines of code I can throw away :)
[rant]Dreamweaver js sucks =( [/rant]
Yes. And not only the js. I'm now going through page after page after page of beautiful code like this:

Code: Select all

</tr><tr bgcolor="#FFFFFF">
 <td>    <font face="Arial, Helvetica, sans-serif" size="2" color="#203d8d">
 <font size="1" color="#000000"><b>
	 <font color="#990099" size="3" face="Arial, Helvetica, sans-serif">
 <font face="Arial, Helvetica, sans-serif" size="2" color="#203d8d">   
<font size="1" color="#000000"><b>
 <font color="#990099" size="3" face="Arial, Helvetica, sans-serif">  
<font face="Arial, Helvetica, sans-serif" size="2" color="#203d8d"><b>
</b><font size="1" color="#000000"><b>
<font color="#990099" size="3" face="Arial, Helvetica, sans-serif">
 <font face="Arial, Helvetica, sans-serif" size="2" color="#203d8d">
	<font size="1" color="#000000"><b>  <font color="#990099" size="3" face="Arial, Helvetica, sans-serif">
	 <font face="Arial, Helvetica, sans-serif" size="2" color="#203d8d"> 
 <font size="1" color="#000000"><b>
	 <font color="#990099" size="3" face="Arial, Helvetica, sans-serif">
 <font face="Arial, Helvetica, sans-serif" size="2" color="#203d8d">
<font size="1" color="#000000"><b><font color="#990099" size="3" face="Arial, Helvetica, sans-serif">
 <font face="Arial, Helvetica, sans-serif" size="2" color="#203d8d">
<font size="1" color="#000000"><b><font color="#990099" size="3" face="Arial, Helvetica, sans-serif">
<font face="Arial, Helvetica, sans-serif" size="2" color="#203d8d">
 <font size="1" color="#000000"><b><font color="#990099" size="3" face="Arial, Helvetica, sans-serif">
<font face="Arial, Helvetica, sans-serif" size="2" color="#203d8d">
<font size="1" color="#000000"><b><font color="#990099" size="3" face="Arial, Helvetica, sans-serif">
 <font face="Arial, Helvetica, sans-serif" size="2" color="#203d8d"><b><br>
 <?php include ("banner.txt"); ?>
    </b></font></font></b></font></font></font></b></font></font>
 </font></b></font></font></font></b></font></font></font></b>
 </font></font></font></b></font></font></font></b></font></font>
 </font></b></font></font></font></b></font></font>
 <font face="Arial, Helvetica, sans-serif" size="2" color="#203d8d">
 <font color="#990099" size="3" face="Arial, Helvetica, sans-serif">
 <font face="Arial, Helvetica, sans-serif" size="2" color="#203d8d">
	 <font size="1" color="#000000"><b><font color="#990099" size="3" face="Arial, Helvetica, sans-serif">
 <font face="Arial, Helvetica, sans-serif" size="2" color="#203d8d"></font></font></b></font>
	 </font></font></b></font></font>
  </td> 
</tr>
         </table>
       <!-- #EndEditable --></td>
              </tr>
  </table>   </td>
        </tr>    </table>
 <table width="762" border="0" cellspacing="1" cellpadding="0" align="center">
  <tr>
No joke!

Mind you, this is just a tiny part of an average page. I only have to do about 80 of them :evil:
mickd
Forum Contributor
Posts: 397
Joined: Tue Jun 21, 2005 9:05 am
Location: Australia

Post by mickd »

Wow, makes you think if it'll actually be faster just to write it out youself.
Post Reply