Michael_K: XHTML document im iframe mit javascript erstellen

Hallo,

ich habe einen html-Seite mit javascript, in der ein iframe Element eingebunden ist. Ich moechte nun mit Javascript ein XHTML-Document also ein XML-Document bauen. Wenn ich es aber richtig sehen, wird nur ein HTML-document erstellt. Wo liegt mein Fehler. Waere dankbar fuer Hinweise.

var doc = document.getElementById("iframeID").contentDocument;
doc.implementation.createDocument ('http://www.w3.org/1999/xhtml', 
            'html', null);
  1. Lieber Michael_K,

    wenn Du schon das Dokument "per Hand" erstellst, dann kannst Du auch mit document.open(), document.write() und wieder document.close() das Dokument hinein schreiben. Wenn Du dafür den passenden Quelltext bereit hältst, sollte es passen.

    Liebe Grüße

    Felix Riesterer

  2. Ich würde da nicht mit irgendwelchen Funktionen hantieren sondern einfach ein Template für das Dokument erstellen. Dafür eignet sich ein Scriptbereich:

    <script id="xmltemplate" type="text/plain">
    <!doctype ..>
    ../>
    </script>
    

    Über die id wirds dann gelesen, gerendert und in den iframe gepflanzt. MFG

    1. Hallo Emil,

      Ich würde da nicht mit irgendwelchen Funktionen hantieren sondern einfach ein Template für das Dokument erstellen. Dafür eignet sich ein Scriptbereich:

      <script id="xmltemplate" type="text/plain">
      <!doctype ..>
      ../>
      </script>
      

      Nein. Wenn man das so machen will, dann gibt es dafür template.

      LG,
      CK

      1. Hallo Christian,

        außer im IE. Der ist mir noch nicht tot genug.

        SCNR
        Rolf

        --
        sumpsi - posui - clusi
        1. Hallo Rolf,

          außer im IE. Der ist mir noch nicht tot genug.

          Ja, der IE – the bane of my existance.

          LG,
          CK

          1. Hallo Christian,

            was ist eine Exi-Haltung?

            Rolf

            --
            sumpsi - posui - clusi
            1. Hallo Rolf,

              was ist eine Exi-Haltung?

              *abwink* geschenkt 😉

              LG,
              CK

    2. Ein Template wird natürlich nur gebraucht wenn Platzhalter gerendert werden müssen. Ansonsten kann das XHTML auch gleich im iframe platziert werden. Wäre also noch die Frage warum das XHML überhaupt mit JS erstellt werden soll?

      MFG

      1. Danke für die Antwort,

        vielleicht sollte ich das Scenario besser beschreiben. Es geht darum, einen einfachen XML-Editor aufzusetzen in einer Art Web-App.

        Auf der einen Seite wird ein editierbares Textfeld dargestellt, in der man den XML String eingeben bzw. bearbeiten kann. Dem Textfeld gegenüber soll dann in dem iFrame die XHTML-Seite angezeigt werden, die aus dem XML-Code erstellte wird. Ich könnte natürlich den xmlstring (ist kein XHTML-string) in den XHTML-string wandeln und dann in den iframe schreiben mit open() und close(). Das bedeutet aber, dass das document im iframe immer wieder komplett neu geschrieben werden muss. Ich möchte es aber so realisieren, dass man den XML String bearbeitet und dann im iframe auch die entsprechende Stelle sichtbar ist. Dafür müsste ich das Ganze so umsetzen, dass ich den Inhalt des XHTML-Dokument einzeln aufbaue. Also keinen String einlesen, sondern im iFrame den Inhalt via DOM aufbaue.

        Ich hoffe, dass es verständlilch ist.

        Gruss

        1. Lieber Michael_K,

          vielleicht sollte ich das Scenario besser beschreiben. Es geht darum, einen einfachen XML-Editor aufzusetzen in einer Art Web-App.

          also im Grunde ein Fiddle.

          Auf der einen Seite wird ein editierbares Textfeld dargestellt, in der man den XML String eingeben bzw. bearbeiten kann.

          So schön mit Syntax-Highlighting?

          Ich könnte natürlich den xmlstring (ist kein XHTML-string) in den XHTML-string wandeln und dann in den iframe schreiben mit open() und close(). Das bedeutet aber, dass das document im iframe immer wieder komplett neu geschrieben werden muss.

          Was wäre daran schlecht? Es funktioniert sehr gut!

          Ich möchte es aber so realisieren, dass man den XML String bearbeitet und dann im iframe auch die entsprechende Stelle sichtbar ist.

          Dann ist Dein Konzept nicht gut. Dazu müsstest Du ja das XML-Dokument in Teile auftrennen, damit der Ergebnis-Frame eine Chance hat zu wissen, an was Du gerade herumeditierst.

          Oder Du testest gegen eine "Vorversion", um zu ermitteln, an welcher Stelle die Änderung(en) vorgenommen wurden, um im iFrame die aktualisierte Stelle heran zu scrollen.

          Liebe Grüße

          Felix Riesterer

          1. Hallo Felix,

            also im Grunde ein Fiddle.

            Ja, genau

            Dann ist Dein Konzept nicht gut. Dazu müsstest Du ja das XML-Dokument in Teile auftrennen, damit der Ergebnis-Frame eine Chance hat zu wissen, an was Du gerade herumeditierst.

            Oder Du testest gegen eine "Vorversion", um zu ermitteln, an welcher Stelle die Änderung(en) vorgenommen wurden, um im iFrame die aktualisierte Stelle heran zu scrollen.

            Es soll mit id gearbeitet werden. Bei dem XML String handelt es sich um eine besonderes XML-Format, welches auch mit id-Attributen in den Elementen arbeitet, dadurch kann man dann auch beide Bereiche in etwa nebeneinander ausrichten.

            Gruss

            Michael

            1. Lieber Michael_K,

              Es soll mit id gearbeitet werden. Bei dem XML String handelt es sich um eine besonderes XML-Format, welches auch mit id-Attributen in den Elementen arbeitet, dadurch kann man dann auch beide Bereiche in etwa nebeneinander ausrichten.

              und Du kannst zu der entsprechenden ID scrollen.

              Liebe Grüße

              Felix Riesterer