phase: innerHTML in datei speichern?

hallo,
habe ein ganz tolles script mit dem man mittels JavaScript text in einem iFrame formatieren kann.

http://showroom.maxout.de/scripts/editor/editor.html

nun würde ich aber gern diesen formatierten text in eine datei oder datenbank speichern.

leider bin ich nicht so der javaScript-kenner - vielleicht kann mir hier jemand unter die arme greifen??

danke und gruß
phase

  1. Hallo,
    per JavaScript ist das unmöglich, es sei denn du importierst ActiveX Objecte, wie das FileSystemObject, was nur unter windows geht und allerdings auch die niedrigsten Sicherheitseinstellungen des Besuchers der Seite braucht.

    Für Datenbank und Dateisystemzugriff musst du mit Serverseitigen Sprachen wie PHP, ASP, JSP, CGI, etc arbeiten.

    Gruß
    Paul

    1. hi Paul,

      danke erst mal für die schnelle antwort.
      php wäre ja kein problem, nur wie kann ich den inhalt des iframes an php übergeben??

      gruß
      phase

      1. Hallo phase,

        php wäre ja kein problem, nur wie kann ich den inhalt des iframes an php übergeben??

        Setze den value eines Hidden-Formularfeldes auf den gewünschten Inhalt und schicke das Formular an Dein PHP-Script ab.

        Grüße,

        Christian

        --
        Ich wünsche allen ein frohes neues Jahr 2003!
        Ich bitte darum, dass ein Themenbereich (BARRIEREFREIHEIT) eingerichtet wird.
        Hmm, was könnte ich sonst noch in die Signatur schreiben?
        1. Hallo phase,

          php wäre ja kein problem, nur wie kann ich den inhalt des iframes an php übergeben??

          Setze den value eines Hidden-Formularfeldes auf den gewünschten Inhalt und schicke das Formular an Dein PHP-Script ab.

          Grüße,

          Christian

          hallo Christian,

          im prinzip ist mir das klar, nur wie würde das dann ausehen?
          in etwa so?

          <form action="ok.php" method="post" name="abschicken">
          <input name="id" type="hidden" value="idContent">
          <iframe width="100%" id="idContent" height="100%" frameborder="0">ttttesss</iframe>
          <input name="abschicken" type="button">
          </form>

          tut mir leid, vieleleicht hab ich da auch irgendwie ein brett vorm kopf aber ich habe noch nie mit iFrames gearbeitet. könntest du mir ein  beispiel nennen?

          vielen dank
          phase

          1. Hallo phase,

            <form action="ok.php" method="post" name="abschicken">
            <input name="id" type="hidden" value="idContent">
            <iframe width="100%" id="idContent" height="100%" frameborder="0">ttttesss</iframe>
            <input name="abschicken" type="button">
            </form>

            tut mir leid, vieleleicht hab ich da auch irgendwie ein brett vorm kopf aber ich habe noch nie mit iFrames gearbeitet. könntest du mir ein  beispiel nennen?

            document.forms['abschicken'].elements['id'].value = wasauchimmerduwillst;
            document.forms['abschicken'].submit ();

            wasauchimmerduwillst kann z.B. der Inhalt vom IFrame sein.

            Grüße,

            Christian

            --
            Ich wünsche allen ein frohes neues Jahr 2003!
            Ich bitte darum, dass ein Themenbereich (BARRIEREFREIHEIT) eingerichtet wird.
            Hmm, was könnte ich sonst noch in die Signatur schreiben?
            1. document.forms['abschicken'].elements['id'].value = wasauchimmerduwillst;
              document.forms['abschicken'].submit ();

              wasauchimmerduwillst kann z.B. der Inhalt vom IFrame sein.

              Grüße,

              Christian

              danke, aber jetzt bekomm ich ne fehlermeldung:

              'document.forms.abschicken.elements' ist Null oder kein Object

              ich habs so versucht:
              [...]
              <body>
              <script language="JavaScript" type="text/JavaScript">
              document.forms['abschicken'].elements['id'].value = idContent;
              document.forms['abschicken'].submit ();
              </script>
              <form action="ok.php" method="post" name="abschicken">
              <input name="abschicken" type="submit">
              <input name="id" type="hidden">
              </form>
              <iframe width="100%" id="idContent" height="100%" frameborder="0">ttttesss</iframe>
              </body>
              [...]

              wäre für noch nen tipp wirklich dankbar!

              1. Hallo phase,

                <script language="JavaScript" type="text/JavaScript">
                document.forms['abschicken'].elements['id'].value = idContent;
                document.forms['abschicken'].submit ();
                </script>

                Hier führst Du ein Script direkt aus. (ohne Verzögerung)

                <form action="ok.php" method="post" name="abschicken">

                Und hier definierst Du das Formular, das in diesem Script verwendet wird. Das Script _kann_ das Formular noch gar nicht kennen.

                Baue doch diese Funktionalität in eine Funktion ein. Diese Funktion rufst Du dann entweder bei einem Button auf (<input type="button" onclick="...">) oder beim Laden (<body onload="...">) - je, nachdem, was Du haben willst.

                Grüße,

                Christian

                --
                Ich wünsche allen ein frohes neues Jahr 2003!
                Ich bitte darum, dass ein Themenbereich (BARRIEREFREIHEIT) eingerichtet wird.
                Hmm, was könnte ich sonst noch in die Signatur schreiben?
                1. hätte ich doch in der schule besser aufgepasst.
                  leider ist javaScript nicht meine welt...

                  ich habs jetzt so versucht:
                  [...]
                  function go_(value,name,features) {
                  document.forms['abschicken'].elements['id'].value = idContent;
                  document.forms['abschicken'].submit ();
                  }
                  [...]

                  [...]
                  <form action="ok.php" method="post" name="abschicken">
                    <input name="abschicken" type="button" onClick="go_('id','','')">
                  <input name="id" type="hidden">
                  </form>
                  <iframe width="100%" id="idContent" height="100%" frameborder="0">ttttesss</iframe>
                  [...]

                  die ok.php sieht so aus:

                  <?php echo $_POST[id] ?>

                  ausgegeben wird aben nur '[object]'

                  was mach ich falsch??

                  1. Hallo phase,

                    hätte ich doch in der schule besser aufgepasst.
                    leider ist javaScript nicht meine welt...

                    Seit wann steht JavaScript auf dem Schullehrplan? ;-)

                    document.forms['abschicken'].elements['id'].value = idContent;
                    ausgegeben wird aben nur '[object]'

                    [object] wird von Javascript erzeugt. Das ist nichts anderes als die 'Verwandlung' von idContent in eine Zeichenkette. Du willst ja nicht den IFrame haben, sondern den Inhalt => ... = idContent.innerHTML;

                    Klar?

                    Grüße,

                    Christian

                    --
                    Ich wünsche allen ein frohes neues Jahr 2003!
                    Ich bitte darum, dass ein Themenbereich (BARRIEREFREIHEIT) eingerichtet wird.
                    Hmm, was könnte ich sonst noch in die Signatur schreiben?
                    1. Seit wann steht JavaScript auf dem Schullehrplan? ;-)

                      sollte vielleicht mal eingeführt werden ;-)

                      [object] wird von Javascript erzeugt. Das ist nichts anderes als die 'Verwandlung' von idContent in eine Zeichenkette. Du willst ja nicht den IFrame haben, sondern den Inhalt => ... = idContent.innerHTML;

                      Klar?

                      ja, ist einleuchtend, hab jetzt ...value = idContent.innerHTML;

                      aber jetzt bekomm ich 'undefined ' ausgegeben *arrg*
                      ist das ne verbesserung??

                      danke für deine gedult!

                      phase

                      1. Hallo phase,

                        ja, ist einleuchtend, hab jetzt ...value = idContent.innerHTML;
                        aber jetzt bekomm ich 'undefined ' ausgegeben *arrg*

                        Grrrr. Man merkt, dass ich nie mit iFrames arbeite:

                        irgendwas.value = window.idContent.document.body.innerHTML;

                        Ach ja, der Iframe braucht noch ein Attribut name="idContent", denn das name-Attribut gibt Frames ihren Namen, nicht das ID-Attribut.

                        Das müsste klappen, zumindest im IE 5.5, Mozilla 1.3 und Opera 7b1. (da hab' ichs getestet)

                        Noch etwas: Das liefert nur den Inhalt von <body>, wenn Du den gesamten HTML-Inhalt willst, dann geht das so:

                        irgendwas.value = window.idContent.document.getElementsByTagName("html")[0].innerHTML;

                        (da kommt dann zwar kein <html> und </html> drin vor, aber die kannst Du Dir ja dazudenken)

                        Grüße,

                        Christian

                        --
                        Ich wünsche allen ein frohes neues Jahr 2003!
                        Ich bitte darum, dass ein Themenbereich (BARRIEREFREIHEIT) eingerichtet wird.
                        Hmm, was könnte ich sonst noch in die Signatur schreiben?
                        1. Grrrr. Man merkt, dass ich nie mit iFrames arbeite:

                          hab ich bis dahin auch noch nicht...

                          irgendwas.value = window.idContent.document.body.innerHTML;

                          Ach ja, der Iframe braucht noch ein Attribut name="idContent", denn das name-Attribut gibt Frames ihren Namen, nicht das ID-Attribut.

                          ging auch ohne, werd ihn aber sicherheitshalber noch mal dazu schreiben ;-)

                          Das müsste klappen, zumindest im IE 5.5, Mozilla 1.3 und Opera 7b1. (da hab' ichs getestet)

                          das is schon ok, ist eh nur für den adminbereich und da kann man ja nen modernen browser vorraussetzen.

                          Noch etwas: Das liefert nur den Inhalt von <body>, ...

                          genau das wollte ich haben!

                          irgendwas.value = window.idContent.document.getElementsByTagName("html")[0].innerHTML;

                          werd ich mir trotz dem mal notieren ;-)

                          wow! schwierige geburt aber es klappt!
                          vielen dank noch mal an dich und dein wissen ;-)

                          gruß und nen schönen abend noch!
                          phase

                          //was wären leute wie ich ohne ein forum wie dieses [...]

                          closed!

                  2. hätte ich doch in der schule besser aufgepasst.
                    leider ist javaScript nicht meine welt...

                    Ich versteh nicht, warum du mit so wenig Kenntnissen so was schwieriges machen willst.

                    <form action="ok.php" method="post" name="abschicken" onsubmit= "this, 'html',)">
                       <input name="abschicken" type="submit">
                     <input name="html" type="hidden" value= "">
                     </form>

                    <iframe width="100%" id="idContent" height="100%" frameborder="0">ttttesss</iframe>

                    function go_(form, name) {
                      form[name].value = idContent.innerHTML;
                    }

                    Wobei ich aber nicht weiss, wie man iFrames anspricht, da ich noch nie damit gearbeitet habe.

                    Ich würd mir einfach mit einem alert(idContent.innerHTML) das Testweise nochmal ausgeben lassen.

                    Struppi.

                    1. hätte ich doch in der schule besser aufgepasst.
                      leider ist javaScript nicht meine welt...

                      Ich versteh nicht, warum du mit so wenig Kenntnissen so was schwieriges machen willst.

                      <form action="ok.php" method="post" name="abschicken" onsubmit= "this, 'html',)">

                      oh, da ist was verscvhluckt worden:

                      <form action="ok.php" method="post" name="abschicken"
                      onsubmit="go_(this,'html',);">

                      <input name="abschicken" type="submit">
                       <input name="html" type="hidden" value= "">
                       </form>

                      <iframe width="100%" id="idContent" height="100%" frameborder="0">ttttesss</iframe>

                      function go_(form, name) {
                        form[name].value = idContent.innerHTML;

                      und hier wie Christian schon schreibt:

                      form[name].value = window.idContent.document.body.innerHTML;

                      Struppi.