XML in neuem Fenster darstellen

kroesi

Erfahrenes Mitglied
Hi !

Ich habe folgendes Problem :

Ich habe in einem Javascript-String mit XML als Inhalt. Dieses XML möchte ich nun in einem neuen Browserfenster (welches ich mit window.open öffne) darstellen (also den XML-Code, nicht den Inhalt des XML's). Ich habe bereits mehrere Ansätze ausprobiert, bekomme aber nur ein leeres Fenster mit dem XML als Quellcode. Im Firefox funktioniert folgendes, nicht aber im IE :

Javascript:
var exportWindow = window.open("exportresult.html" ,'ExportErg', "" );
        		
exportWindow.document.open("text/xml");
        		
exportWindow.document.write(res); //in res befindet sich der XML-String
        		
exportWindow.document.close();

Wäre super, wenn jemand eine Lösung hätte ...

Danke,

Krösi
 
Zuletzt bearbeitet von einem Moderator:
Hi,

Ich vermute mal der IE parsed ein XML File (abhängig vom Header) nur, wenn es beim Server-Request vom Server geliefert wird, und nicht, wenn Du es per document.write einfach mit JS reinsetzt..

Und nachdem die notation von XML = XHTML ist, wird der Output nicht angezeigt...
Das klingt logisch würd ich mal sagen... :eek:) Wirst Du so also nicht hinbekommen..

Ciao,
Mike
 
versuchs mal mit
Code:
exportWindow = window.open();
exportWindow.document.open();
exportWindow.document.write('<xmp>' + res + '</xmp>');
exportWindow.document.close();
 
Bewirkt die notation <xmp> irgendwas spezielles Sven? Oder ist das nur als Platzhalter gedacht?
 
Hi !

Cool, erstmal danke !

Folgendes habe ich über das <xmp>-Tag rausgefunden. Es schaltet das komplette Rendering
des Browsers aus, es wird also mein XML ausgegeben. Allerdings ist das <xmp>-Tag als deprecated gekennzeichnet. Es ist auch schon komplett aus dem HTML 4 Standard verschwunden. Aus den gängigen Browsern jedoch nicht immer. Das W3C empfiehlt als Ersatz das <pre>-Tag, allerdings ist das nicht genau das selbe, funktioniert bei mir auch nicht.

Eine andere Möglichkeit (funktioniert bei nur im Firefox) :

Javascript:
document.open('text/xml');
document.write(res);
document.close();

Ich werde alles nochmal ausprobieren, und stelle dann mal zusammen, welche Möglichkeiten es gibt.

Schönes, langes WE noch,

Krösi
 
Zuletzt bearbeitet von einem Moderator:
Jo... das hab ich wissentlich verschwiegen, dass es nicht zum HTML-Standard gehört. :-(

eine andere Variante: erstelle im Popup einen Textknoten, und weise dessen data-Eigenschaft res zu. Das sollte auf jeden Fall hinhauen, und ist auch valides HTML :)
 
Hi !

Also ich hab folgendes probiert :

HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script languange="javascript" >

function test()
{
    var xml = '<?xml version="1.0" encoding="ISO-8859-1" ?>\n<test>\n         test\n</test>';
    var neuesFenster = window.open("","test","");
    var textKnoten = neuesFenster.document.createTextNode(xml);
    neuesFenster.document.body.appendChild(textKnoten);
}

</script>
<title>Textknoten mit xml</title>
</head>
<body>
      <input type="button" value="xml" onclick="test()" />
</body>
</html>

Funtkioniert im Firefox 1.5 und IE 6, jedoch die Zeilenumbrüche werden nicht dargestellt.

Vielen, vielen Dank, bin nun schon einen Schritt weiter !

Krösi
 

Neue Beiträge

Zurück