Jump to content
xt:Commerce Community Forum

MouseOver Buttons einfügen


MisterXY

Recommended Posts

Hallo!

Ich habe ein kleines Problem beim Einfügen von mouseover Buttons in das Template für xtcommerce. Der Code für die Buttons benötigt Java Script, das auch gleichzeitig das Problem darstellt. Wenn ich den Java Code einfach so in die index.html des Templates schreibe, bekomme ich vom Smarty_Compiler.class.php folgende Fehlermeldung:

Fatal error: Smarty error: [in xtc4/index.html line 12]: syntax error: unrecognized tag 'var' (Smarty_Compiler.class.php, line 583) in /homepages/41/d100285915/htdocs/website/xt_test/includes/classes/Smarty_2.6.14/Smarty.class.php on line 1095

Ich kann daraus nur soviel verstehen, dass der Tag "var" nicht definiert ist, und er somit diesen nicht kompilieren kann.

Der Java Code sieht so aus:

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

}

//-->

</script>

Wo muss dieser Code hin?:confused:

Benutzt wird xt:Commerce 3.0.4SP2.1

Link to comment
Share on other sites

Hi,

meine Meinung ist - vergiß doch MouseOver mit Javascript.

Geht doch viel sauberer, leaner und besser mit CSS.

Da brauchst Du nur 1 Bild, und 2 Definitionen im Stylesheet und die class im HTML code. Fertig.

Und Du brauchst den Javascriptcode nicht.

Übrigens, wenn Du's doch mit JS machen möchtest, der Code wäre gut in der /includes/header.php aufgehoben, dort wo auch ziemlich viel anderes JS plaziert ist, nämlich zwischen

<head> und </head>

:D

Link to comment
Share on other sites

Ohne zu wissen, wofür die general.js.php genau ist:

Da diese nicht überall eingefügt wird, würde ich das eher in die header.php setzen... Schließlich befindet sich dort sowieso schon JS-Code!

die general.js.php steht im /template/javascripts und ist einzig dafür da, Template bezogenes JavaScript mit einzubauen. (also so ziemlich das, was du machen willst ..:-))

Sie wird "jedesmal" mit aufgerufen....

Aber ich gebe njoy2 recht - wenn möglich es im css zu machen !

Viele Grüße - Michael

Link to comment
Share on other sites

Vielen Dank für die hilfreichen Antworten. Ich habe den Code in die includes/header.php kopiert und nun funktioniert es!

Danke nochmals an alle für die Antworten! :D

Wenn ich noch Zeit habe, werde ich die Buttons vielleicht doch noch mit CSS erstellen..

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...