MisterXY Posted April 25, 2008 Report Share Posted April 25, 2008 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? Benutzt wird xt:Commerce 3.0.4SP2.1 Link to comment Share on other sites More sharing options...
mister_tt Posted April 25, 2008 Report Share Posted April 25, 2008 Kein Gewähr, aber ich würde es mal in die includes/header.php stecken... Link to comment Share on other sites More sharing options...
rivendarkness Posted April 26, 2008 Report Share Posted April 26, 2008 Du kannst javascript nicht einfach so in die index.html werfen! eine möglichkeit wäre z.b. die header.php, wie schon erwähnt.. Link to comment Share on other sites More sharing options...
mikkel Posted April 29, 2008 Report Share Posted April 29, 2008 "Gehören" tut JavaScript aber doch in die general.js.php ? Viele grüße - Michael Link to comment Share on other sites More sharing options...
mister_tt Posted April 29, 2008 Report Share Posted April 29, 2008 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! Grüße Simon Link to comment Share on other sites More sharing options...
njoy2 Posted April 29, 2008 Report Share Posted April 29, 2008 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> Link to comment Share on other sites More sharing options...
mikkel Posted April 29, 2008 Report Share Posted April 29, 2008 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 More sharing options...
mister_tt Posted April 29, 2008 Report Share Posted April 29, 2008 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.... Ups, na gut CSS ist immer besser als JS Link to comment Share on other sites More sharing options...
MisterXY Posted May 2, 2008 Author Report Share Posted May 2, 2008 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! Wenn ich noch Zeit habe, werde ich die Buttons vielleicht doch noch mit CSS erstellen.. Link to comment Share on other sites More sharing options...
Trendart-24 Posted May 3, 2008 Report Share Posted May 3, 2008 Und was geschieht, wenn jemand in seinem Browser Javascript deaktiviert hat? Grüße T24 Link to comment Share on other sites More sharing options...
njoy2 Posted May 3, 2008 Report Share Posted May 3, 2008 dann baut MisterXY irgendwann doch CSS buttons ein Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.