2011-01-11 3 views
5

Während ich versuchte, einen iframe mit documnet.write in IE einzufügen, wurde ich erfolgreich. Aber jeder HTML-Code danach wird nicht ausgeführt.Jeder HTML-Code nach iframe wird nicht mit document.write ausgeführt

document.write("<div>Hello</div><iframe ..../><div>Bye Bye</div>"); 

Hier "Bye Bye" Zeichenfolge wird nicht ausgeführt.

Für einen Augenblick überprüfen Sie url Ihrem Browser

javascript:document.write("<div>Hello</div><iframe ..../><div>Bye Bye</div>"); 

Nach Versuch und Irrtum, fand eintippen kann ich, wenn ich den iframe-Tag in der folgenden Art und Weise zu schließen, es funktioniert.

<iframe ...></iframe> instead of <iframe ... /> 

Nun, das Problem ist: „Ich habe keine Möglichkeit, die <iframe ../>-<iframe .. ></iframe> zu ändern“. Auf der Suche nach Ihrem freundlichen Rat.

+0

Welche Doctype verwenden Sie? –

+0

@Pekka Hoque

+0

aww, Dies kann unlösbar sein. Sie haben absolut keine Möglichkeit, die Saite zu ändern? Ich denke, es gibt ein ähnliches Problem mit '

1

Wenn Sie beide keine Möglichkeit haben, die Zeichenfolge zu ändern (dh Sie können es nicht vorher lesen) und der document.write Teil des Codes, ich nehme an, Sie haben zumindest die Berechtigung, Code in dem Dokument zu bearbeiten/einfügen (oder Sie sollten diese Frage nicht haben, da Sie buchstäblich gar nichts tun können).

Auf diese Weise versuchen, die document.write() Verfahren Anlassen durch einen Code eingefügt, bevor die Dinge passieren:

document.write=function(str){ 
    str=str.replace(/<iframe([^>]*?)\/>/ig,'<iframe$1></iframe>'); 
    return document.writeln(str); 
}