dynamisches Einbinden von <img.../> über JS
| Autor | Nachricht |
|---|---|
|
Verfasst am: 02. 02. 2012 [13:56]
|
|
|
ACarsten
Themenersteller
Dabei seit: 02.02.2012
Beiträge: 2
|
Hallo ich bin bei uns im System Redakteur, ein Typo3-Neuling, bin aber eigentlich ziemlich fit im Entwickeln von Webseiten. Ich habe nun ein HTML-Template zur Verfügung, in das ich reines HTML einpflegen kann. Nun möchte ich dort JS verwenden - geht auch scheinbar <script>document.write("Schreiben in JS" txt='<img src="http://blabla/images/w1.png">'; document.write(txt); </script> funktioniert Aber wenn ich das img-Tag in einer Schleife zusammen baue: for (ii = 1; ii <= 15; ii++) { grad = -gr + Math.floor(Math.random()*2*gr); att1 = 'class="pictos" '; att2 = 'src="http://blabla/images/w1.png" '; att3 = 'alt="" '; att4 = 'style="" '; txt="<img "+att2+att1+att3+att4+">"; document.write(txt); } kommt im Quelltext der Seite sowas an: txt="<img att2att1att3att4="" alt="" />"; Das der Browser damit nix anfangen kann, kann ich nachvollziehen WAS mach ich falsch??? |
|
Verfasst am: 02. 02. 2012 [20:04]
|
|
|
Chrissli
Dabei seit: 19.04.2010
Beiträge: 297
|
Hallo Carsten! Leider geht aus deinem Text nicht ganz hervor, wie du diesen Javascript-Code einfefügt hast. Steht der hardcoded im Template oder hast du das per TS eingefügt? Der "falsche" Code der ausgegben wird,steht der im Quellcode oder auf der Seite ( und kann im Quellcode eventuell noch ein paar nicht interpretierte Zeichen enthalten ) Was mir nämlich bei deinem 2. Code-Beispiel aufgefallen ist, ist das hier keine <script>-Tags stehen, aber vermutlich hast du die korrekt angegeben ? Ansonsten kannst du mal versuchen den Code via page.includeJS einzubinden ( siehe Script-Referenz ). Bei größeren Skripten empfiehlt sich das ohnehin, da der JavaScript-Code dann in den Genuss vom Cache kommt und komprimiert werden kann, was dem PageSpeed zugute kommt God's in his Heaven -
All's right with the world! |
|
Verfasst am: 06. 02. 2012 [14:27]
|
|
|
ACarsten
Themenersteller
Dabei seit: 02.02.2012
Beiträge: 2
|
Hallo Chrissli, mein Skript steht in einem Inhaltselement vom Typ plainHTML (siehe Anhang) Den eigenartigen Text txt="<img att2att1att3att4="" alt="" />"; habe ich im Quelltext (bzw im Firebug) gefunden. Das Ganze liegt offenbar an der Eingabe des "<img " in dem Inhaltselement. Ich habe jetzt ein Workaround gefunden indem ich doc.write("<" + "i" + "mg " +...) verwende. Jetzt stehe ich vor dem nächsten Problem: ich will an ein div ein onclick-ereignis anhängen - und das ignoriert er völlig. <script type="text/javascript"> function show() { el=document.getElementById("bu" el.style.display="block"; } </script> <h2 onclick="show();">press hier</h2> <div id="bu" style="display:none;">kdjhfdskhgfdsjhgfhj</div> Werden die Events irgenwo an höherer Stelle abgeleitet, umgeleitet, abgewürgt? |
|
Verfasst am: 07. 02. 2012 [13:30]
|
|
|
Chrissli
Dabei seit: 19.04.2010
Beiträge: 297
|
Also ich kann zumindest auf die ersten beiden Blicke keine Fehler im Code feststellen. Allerdings kann ich mir gut vorstellen, dass aufgrund von Escape-Sequenzen etc. der Inhaltstyp plainHTML vielleicht nicht uneingeschränkt funktioniert, da dieser ja für HTML und nicht Javascript gedacht ist. Ich würde mal versuchen den ScriptCode in eine Datei auszulagern und im plainHTML nur den passenden Tag zu setzen HTML <script type="text/javascript" src="fileadmin/script_xyz.js"></script> Wenn das immer noch nicht funktionieren sollte liegt es doch am JS. Aber so kannst du zumindestens die Ursache eingrenzen. God's in his Heaven -
All's right with the world! |




