Zum Inhalt springen

Javascript einbinden

Erstellt am 1. März 2007 · 21 Antworten · letzte Antwort am 15. Juli 2013 · Seite 2 von 2

Tags: Frage

gino ·
just2b schrieb

vergleich dein TS mit meinem! insb groß-/kleinschreibung

georg

ich habe doch dein skript kopiert und bei mir eingesetzt.... bin ich jetzt ganz blöd???

just2b ·

mein Scriptinhalt war nur Demo, da muss dann schon deins drinstehen..

scheinbar hast du aber kein onload definiert

georg

gino ·

Nun habe ich es endlich geschafft und JavaScript wird richtig ausgeführt. Vielen Dank für Deine Tips und die Geduld. Aber so ist es eben mit den Anfängern... Entdecke seit einigen Monaten immer mehr Möglichkeiten mit Typo3 und bin völlig begeistert, da können schon sich schon mal Flüchtigkeitsfehler einschleichen.

:o

zorc68 ·

Hallo, ich habe ein ähnliches Problem und finde meinen Fehler nicht.
Ich möchte gerne "javascript" in den Headbereich einbauen und ein "onload" in den Bodybereich.
Das Javascript sieht so aus:

<script type="text/javascript">
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_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_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];}
}
function MM_showHideLayers() { //v9.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) 
  with (document) if (getElementById && ((obj=getElementById(args[i]))!=null)) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}
</script>

Das body onload so:

<body onload="MM_preloadImages('images/r1_2_on.png','images/r2_1_on.png','images/r2_3_on.png','images/r2_4_on.png','images/r3_2_on.png','images/r3_3_on.png','images/r4_1_on.png','images/r4_2_on.png','images/r5_2_on.png','images/r5_3_on.png','images/r5_4_on.png')">

Ich habe nun folges in das Setup meines Templates geschrieben:

page.headerData.15 = TEXT
   page.headerData.15.value. (
 <script type="text/javascript">
function MM_preloadfileadmin/images() { //v3.0
  var d=document; if(d.fileadmin/images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadfileadmin/images.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_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_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];}
}
function MM_showHideLayers() { //v9.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3)
  with (document) if (getElementById && ((obj=getElementById(args[i]))!=null)) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}
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];}}
}
</script>
)
  
page.bodyTag = <body onload="MM_preloadfileadmin/images('fileadmin/images/r1_2_on.png','fileadmin/images/r2_1_on.png','fileadmin/images/r2_3_on.png','fileadmin/images/r2_4_on.png','fileadmin/images/r3_2_on.png','fileadmin/images/r3_3_on.png','fileadmin/images/r4_1_on.png','fileadmin/images/r4_2_on.png','fileadmin/images/r5_2_on.png','fileadmin/images/r5_3_on.png','fileadmin/images/r5_4_on.png')">

Im Quellcode der generierten Seite wird auch alles angezeigt, die Funktion des Bilderwechsels bei den Fotos und der Layeinblendung bei den roten Flächen funktioniert aber leider trotzdem nicht.
Hier ist noch der Link zur Seite: http://p199157.mittwaldserver.info/index.php?id=1#
Hat jemand von Euch eine Idee wo ich den Fehler habe.
Viele Grüße
Marc

Norman2k ·

Also ich seh im Quelltext nur Tabellen ... nichts als Tabellen und Javascript-Fehler ... aber kein Javascript was du ja angeblich eingebunden hast #paralyzed#
Leute, lernt doch endlich mal vernünftige zu debuggen, es gibt so schöne Tools für Browser die alle möglichen Informationen/Fehler anzeigt! Allein ein Blick in den Quellcode würde dir zeigen, dass dein Javascript überhaupt nicht eingebunden ist und mit deinem onload auch irgendwas nicht stimmt.

zorc68 ·

Hallo Norman2k,
du hast Recht. Das ist keine Einbindung des javascriptes mehr im Quellcode. Ist mir wohl beim weiteren Ausprobieren verloren gegangen,
Hast Du denn einen Tip wie ich das javascript einbinde?

Chrissli ·

Ist zwar etwas weg vom Thema aber ist es denn völlig aus der Mode gekommen Javascript auszulagern?
Ich persönlich habe meine bedenken, ob die Klammern im value-Bereich von headerData immer mit dem darin befindlichen Javascript richtig geparst werden ohne den Code durcheinander zu bringen...