Mahlzeit,
<script type="text/javascript">
for (var i = 0; i < document.forms[0].itemid.length; ++i)
{
var htmlstart = '<form target="itemfr" action="';
var url = '/itemid.php?ud=';
var itid = document.forms[0].itemid.options[i].value;
var htmlend1 = '&st=0" method="post">';
var htmlend2 = '<input type="submit" name="submit" value="neu" id="x">';
var htmlend3 = '<input type="hidden" name="entry" value="bla">';
var htmlend4 = '</form><script>alert('test')</script>';
var htmlend5 = '<iframe name="itemfr">';var htmlgesamt = htmlend1+ htmlend2 + htmlend3 + htmlend4 + htmlend5;
var code = htmlstart + url + itid + htmlgesamt;
var codezwischenspeicher = "" + codezwischenspeicher + code;
}
document.write(codezwischenspeicher);
</script>
Mal ein paar prinzipielle Fragen:
1. Warum initialisierst Du 11 Variablen (bei jedem Durchlauf der Schleife neu!), wo doch eine ausreichen würde?
2. Warum meinst Du in Deiner erzeugten Ausgabe kein valides HTML ausgeben zu dürfen (nicht-geschlossene <iframe>s)?
3. Wieso willst Du überhaupt MEHRERE <iframe>s ausgeben (wo doch anscheinend ALLE Formulare den gleichen <iframe> als "target" haben)?
var select = document.getElementsByName('itemid')[0];
if (select) {
var html = '';
for (var i = 0; i < select.options.length; ++i) {
html += '<form target="itemfr" action="/itemid.php?ud=';
html += select.options[i].value;
html += '<input type="submit" name="submit" value="neu" id="x';
html += i; // Jede ID darf in einem HTML-Dokument nur genau EINMAL vorkommen!
html += '"><input type="hidden" name="entry" value="bla"></form><script>alert(\'test\')<\/script>';
}
html += '<iframe name="itemfr"></iframe>';
document.write(html);
}
Allerdings wird auch immernoch ein Fehler ausgeworfen:
Fehler: unterminated string literal
Quelldatei: file:///C:/Dokumente%20und%20Einstellungen/icke/Desktop/test2.html
Zeile: 25, Spalte: 15
Quelltext:
var htmlend4 = '</form><script>alert('23')
Obwohl der </script> tag noch vor dem Delimiter kommt.
Siehe hierzu MudGuards Beitrag.
Lasse ich den <script>alert('test')</script> weg, dann
wird mir auch nur genau 1 iframe generiert.
Am unsauberen Pseudo-HTML-Müll, den Du erzeugst?
MfG,
EKKi
sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|