1

Ich habe ein HTML-Formular und iframe wie folgt aus:Wie XML DOM in IE abrufen?

<form id="frmUpload" target="ifrTarget" action='http://....asmx/SampleMethod'> 
    <input name="title" /><br /> 
    ... 
    <input type="submit"/> 
</form> 
<iframe id="ifrTarget" name="ifrTarget"></iframe> 

Aktion-Attribut auf meine ASP.NET Web-Service. Wenn das Formular gesendet wird, wird der IFRAME mit dem resultierenden XML gefüllt. Ich muss DOM dieses XML-Dokuments abrufen. Bis jetzt sieht mein Code wie folgt aus:

var iframe = document.getElementById("ifrTarget"); 
var root = iframe.contentWindow.document.documentElement; 

Dies funktioniert perfekt in FireFox, Chrome und Opera Browsern. Aber es funktioniert nicht in IE 6 & 7. Soweit ich verstehe, im IE bekomme ich DOM des HTML-Dokuments, das IE intern erstellt, um Syntax-Highlighting für XML anzuzeigen. Was ich brauche, ist, dass ich zugrundeliegendes XML unverändert erhält. Ist es in IE erreichbar?

Es gibt einen guten Grund, mit Formular und iframe beizubehalten, anstatt Web-Service über AJAX aufzurufen. Leider ist AJAX in diesem Fall keine Option für mich.

+0

Können Sie erklären, warum AJAX für Sie keine Option ist? –

Antwort

1

Nein, Sie können nicht die unveränderte XML auf diese Weise mit IE erhalten. Der XML- "Pretty Printer" MIME-Filter ersetzt die XML-Quelle, wie sie von IE gesehen wird, durch den HTML-Code, der dem Benutzer angezeigt wird.

Verwenden XHR oder dergleichen ist die einzige echte Problemumgehung.

0

Versuchen Sie, das XML, das an IFRAME übergeben wird, mit (sogar nicht vorhandenem) CSS zu verknüpfen. Dies sollte IE davon abhalten, die XML-Datei zu drucken. Dann sollte das contentWindow.document DOM des empfangenen XML enthalten. Oder Sie möchten den Dokumentinhalt als Zeichenfolge abrufen und die Zeichenfolge als XML analysieren. CSS ist mit XML durch Verarbeitungsanweisungen wie folgt verknüpft:

<? Xml-stylesheet href = "nicht vorhandene.css" type = "text/css"? >