View Full Version : Can I simplify this code?

06-19-2007, 06:21 AM
When I insert a rollover in Dreamweaver the following code is created:


<script type="text/JavaScript">
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;

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];}}

function MM_findObj(n, d) { //v4.01
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);
if(!x && d.getElementById) x=d.getElementById(n); return x;

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];}


<body onload="MM_preloadImages('images/origins-r.jpg')">

<a href="origins.htm" onmouseout="MM_swapImgRestore()" onmouseover="MM_swapImage('Image1','','images/origins-r.jpg',1)"><img src="images/origins.jpg" name="Image1" width="154" height="28" border="0" id="Image1" /></a>

Is there any way to simplify this by maybe using css?

And in case it's relevant I have no knowledge of how Javascript works.

06-19-2007, 12:07 PM
CSS is usually not a replacement for JS, since CSS deals with presentation and JS with page manipulation.

You need to keep using this code if you're going to use other DW behaviours or want to extend the use of the current imageswaps.

Or learn JS programming :)

06-19-2007, 07:28 PM
That's not the sort of answer I was hoping for but thanks anyway!!!! :-D :-D :-D

06-19-2007, 07:50 PM
I know :)

You can make the script shorter and find some quick rollover js, but then you miss the capability of having other DW behaviors interact with it.

Like this one: