Mssmar: Document.write

Hi,

ich will anhand Document.write() innerhalb der selben File und genau an die selben Stelle einen Div schreiben lassen.

Das ganze wird aber nicht direkt geschrieben, sondern erst wenn die Funktion aufgerufen wird.

Das Problem ist aber wenn ich die Funktion aufrufe, wird eine neue Seite erzeugt und darin bekomme ich den Div mit dem Inhalt.

Wie kann man das lösen so, dass der Div genau in die selben Seite und an die gewünschte Stelle geschrieben wir.

Ist das mittles innerHtml lösbar und was muss man dazu einfügen oder coden, damit es an die gleichen Stelle geschrieben wird.

Code:

  
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
  
<html>  
     <head><title>Untitled</title></head>  
     <body>  
      <script type="text/javascript" language="JavaScript">  
    function writeDivError() {  
     document.write("<div id='errorBackground' style='filter:alpha(opacity=50); -moz-opacity:0.5; opacity:0.5; position:absolute; top:14px; width:766px; height:920px; z-index:300; background-color: green;'></div>");  
     document.write("<div id='errorMessage' style='position:absolute; margin:264px 0 0 174px; width:450px; height:60px; z-index:302; background-color: #FF0000;'>");  
     document.write("<input type='Submit' value='ok' name='okay' class='errorMessageOkay'>");  
     document.write("</div>");  
    }  
   </script>  
   <table border="0" cellspacing="0" cellpadding="0">  
    <tr>  
     <td>  
      Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas ipsum. Morbi at neque  
      sit amet nibh ultricies commodo. Maecenas sapien. Class aptent taciti sociosqu ad litora  
      torquent per conubia nostra, per inceptos hymenaeos.  
     </td>  
    </tr>  
    <tr><td><input onclick="writeDivError();" type="image" src="img/login.gif" alt="schnell einloggen" /></td></tr>  
  
   </table>  
 </body>  
</html>  

Vielen Dank und Gruß
Messmar

  1. Ich weiß zwar nicht, obs richtig ist, aber ich habe immer ein Span-Element geschrieben:

    <span id="ausgabe"></span>

    und via Funktion dann dort mittels innerHTML das entsprechende hineingeschrieben.

    Sollte es eine Einmalige sache sein (das span soll also verschwinden), kann auch mit outerHTML gearbeitet werden. Dann existiert aber das Element "ausgabe" nicht mehr.

    MFG
    Griever

  2. hi,

    sag mal, was veranstaltest du eigentlich für Kapriolen mit deinem Nick?

    Neben dem bekannten Messmar gab es in den letzten Tagen zahlreiche Variationen wie meesmar, oder jetzt mssmar zu lesen - hat das einen besonderen Grund? (Vielleicht auch medizinischer Natur?)

    Das Problem ist aber wenn ich die Funktion aufrufe, wird eine neue Seite erzeugt und darin bekomme ich den Div mit dem Inhalt.

    Works as designed.

    Wie kann man das lösen so, dass der Div genau in die selben Seite und an die gewünschte Stelle geschrieben wir.

    Entweder, in dem man es eben nicht in eine Funktion packt, sondern gleich beim "Laden" der Seite ausführen lässt, oder -

    Ist das mittles innerHtml lösbar

    Ja, oder in dem du per dafür vorgesehener DOM-Methoden ein neues Div erzeugst und einhängst.

    und was muss man dazu einfügen oder coden, damit es an die gleichen Stelle geschrieben wird.

    Für die .innerHTML-Methode:
    Einfach gewünschtes HTML in einem String zusammenbasteln, und dann der innerHTML-Eigenschaft eines geeigneten Elementes zuweisen.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. hi,

      sag mal, was veranstaltest du eigentlich für Kapriolen mit deinem Nick?

      Der Grund ist ziemlich einfach. Ich habe mich vertippt man oder was glaubst, dass es sein könnte. Und nachdem ich meine Zugangsdaten für speziefische Ansicht über meine EMail-Adress nicht mehr bekam, musste ich einen neuen Account mit dem Namen: Mssmar erstellen.
      Mehr ist es nicht.

      Ja, oder in dem du per dafür vorgesehener DOM-Methoden ein neues Div erzeugst und einhängst.

      Ich habe fast die Lösung, aber eine Fehlermeldung (Syntaxfehler) lässt mich nicht weitermachen.

        
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">  
        
      <html>  
       <head>  
        <title>Untitled</title>  
        <script>  
      <!--  
        
      function hideDiv(divName) {  
        //alert("!!!!" + divName);  
        if (document.getElementById) { // DOM3 = IE5, NS6  
          document.getElementById(divName).style.display = 'none';  
        }  
        else {  
          if (document.layers) { // Netscape 4  
            document.divName.display = 'none';  
          }  
          else { // IE 4  
            document.all.divName.style.display = 'none';  
          }  
        }  
      }  
        
      function showDiv(divName) {  
        //alert("!!!" + divName);  
        if (document.getElementById) { // DOM3 = IE5, NS6  
          document.getElementById(divName).style.display = '';  
        }  
        else {  
          if (document.layers) { // Netscape 4  
            document.divName.display = '';  
          }  
          else { // IE 4  
            document.all.divName.style.display = '';  
          }  
        }  
      }  
      //-->  
      </script>  
        <style>  
         div#errorBackground {  
        filter:alpha(opacity=50); -moz-opacity:0.5; opacity:0.5;  
       position:absolute;  
       left:250px; _left:auto;  
       top:0px;  
       width:768px; height:1034px;  
       z-index:300;  
       background-color: green;  
       }  
        
       div#errorMessage {  
        position:absolute;  
       margin:271px 0 0 428px;  
       _margin:261px 0 0 174px;  
       width:450px; height:60px;  
       z-index:302;  
       background-color: #FF0000;  
       }  
        
       input.errorMessageOkay {  
        cursor:pointer;  
       margin:25px 10px 0 0;  
       _margin: 25px 180px 0 0;  
       background:transparent;  
       border:2px solid #113388;  
       width:100px;  
       }  
        </style>  
       </head>  
        
       <body>  
        
        <script type="text/javascript" language="JavaScript">  
         function writeDivError() {  
          document.body.innerHTML ="<div id='errorBackground' style='filter:alpha(opacity=50); -moz-opacity:0.5; opacity:0.5; position:absolute; top:14px; width:766px; height:920px; z-index:300; background-color: green;'></div>"+  
                     "<div id='errorMessage' style='position:absolute; margin:264px 0 0 174px; width:450px; height:60px; z-index:302; background-color: #FF0000;'>"+  
                  "<input onclick="hideDiv('errorBackground'); hideDiv('errorMessage');" type='Submit' value='ok' name='okay' class='errorMessageOkay'>"+  
                  "</div>"+  
                document.body.innerHTML;  
         }  
        </script>  
        
        
        
        
        
         <form action="#" method="post">  
         <table border="0" cellspacing="0" cellpadding="0">  
          <tr>  
           <td>  
            Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas ipsum. Morbi at neque  
            sit amet nibh ultricies commodo. Maecenas sapien. Class aptent taciti sociosqu ad litora  
            torquent per conubia nostra, per inceptos hymenaeos.  
           </td>  
          </tr>  
          <tr><td><input onclick="writeDivError();" type="image" src="img/login.gif" alt="schnell einloggen" /></td></tr>  
        
         </table>  
         </form>  
       </body>  
        
      </html>  
        
      Vielen Dank und Gruß  
      Messmar  
      
      

      Gruß
      Messmar

      1. hi,

        Ich habe fast die Lösung, aber eine Fehlermeldung (Syntaxfehler) lässt mich nicht weitermachen.

        Trotz Nickwechsel immer noch eindeutig erkennbar - dass du die Fehlermeldung wieder mal nicht nennst, ist schon wieder ziemlich typisch.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }
        1. hi,

          [...] dass du die Fehlermeldung wieder mal nicht nennst, ist schon wieder ziemlich typisch.

          die Lautet wie ich es geschrieben habe:
          Syntaxfelher bei IE-Konsole.

          Aber ich habe es jetzt schon gelöst.

          Es lag daran, dass von lauter Hochkomma durcheinander war und irgendwie die Verschachtlung nicht richtig hatte. Jetzt geht's.

          Bezüglich des Bicknamens, es ist: Messmar und nicht Meesmar oder Mssmar

          Vielen Dank und schöne Grüße
          Messmar

          1. die Lautet wie ich es geschrieben habe:
            Syntaxfelher bei IE-Konsole.

            Firefox hätte dir eine genauere Meldung ausgegeben mit dem Hinweis wo welches Zeichen falsch gewesen wäre.

            Aber ich habe es jetzt schon gelöst.

            so einfach geht das, einfach die Fehlermledung anschauen oft läßt sich dann das Problem lösen. Denn Hellsehen kann selbst hier keiner.

            Struppi.