TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

jetzt buchen

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"icon_wink.gif;
txt='<img src="http://blabla/images/w1.png">';
document.write(txt);
</script>

funktionierticon_biggrin.gif

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 icon_cry.gif
WAS mach ich falsch???
Profil
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!
ProfilICQ
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"icon_wink.gif;
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? icon_rolleyes.gif
Dateianhang

typo3.JPG (Typ: image/jpeg, Größe: 41.14 Kilobyte) — 10 mal heruntergeladen
Profil
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!
ProfilICQ