2011-01-11 16 views
5

Mentre stavo cercando di inserire un iframe utilizzando documnet.write in IE, ho avuto successo. Ma qualsiasi codice html dopo questo non viene eseguito.Qualsiasi codice HTML dopo iframe non viene eseguito utilizzando document.write

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

Qui la stringa "Bye Bye" non viene eseguita.

Per un istante controllo è possibile digitare nel vostro URL del browser

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

Dopo aver fatto tentativi ed errori, ho scoperto che se chiudo il tag iframe nel seguente modo, funziona.

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

Ora, il problema è "non ho alcuna possibilità di cambiare il <iframe ../>-<iframe .. ></iframe>". Cerchi il tuo consiglio gentile.

+0

Cosa DOCTYPE stai usando? –

+0

@Pekka Hoque

+0

aww, questo potrebbe essere irrisolvibile. Non hai assolutamente modo di cambiare la corda? Penso che ci sia un problema simile con ''

1

Se non si dispone di alcuna possibilità di cambiare sia la stringa (vale a dire non si può leggere in anticipo) e la document.write parte del codice, presuppongo che almeno hai il permesso di modificare/inserire del codice nel documento (altrimenti non si dovrebbero avere questa domanda come si può letteralmente fare nulla).

In questo modo, provare a temperare il metodo document.write() con l'inserimento di un codice prima che le cose accadano:

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