1. Nachrichten
  2. Forum
    1. Unerledigte Themen
    2. Forenregeln
  3. Spenden
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. camp-firefox.de
  2. MoreThanWords

Beiträge von MoreThanWords

  • Seite nach window.open mit innerHTML auslesen

    • MoreThanWords
    • 10. September 2007 um 16:01

    Vielen Dank für die beiden hilfreichen Antworten.

    Ich glaube das mit dem XMLSerializer ist die eleganteste Lösung, da kann ich vorher noch die Elemente am DOM bearbeiten bearbeiten und anschließend das Body Tag auslösen.

    Super Danke.

  • Seite nach window.open mit innerHTML auslesen

    • MoreThanWords
    • 7. September 2007 um 11:01

    Hallo,

    Zuerst mal vielen Dank für die Antworten.

    Ich möchte dem Benutzer ermöglichen dass per JS mehrere HTML Seiten (vieleicht 100 - die Anzahl ist variabel) in Form von Kapiteln in ein Dokument kopiert werden. Der Benutzer muss somit nicht jede Seite einzeln auswählen und ausdrucken.

    Das mit Ajax hatte ich bereits auch schon probiert:
    -...
    - Dokument öffnent

    Code
    http.open("GET", "html.html", true);


    - Daten auslesen

    Code
    var daten = http.responseText;


    - Inhalt als DOM Parsen

    Code
    var xml = (new DOMParser()).parseFromString(daten, "text/xml");

    da habe ich das Problem, dass es keine innerHTML Funktion gibt mit der ich den gesamten Inhalt des Body Tags ausschneiden kann. Beim Dom gibt es leider nur die textContent() Funktion.

  • Seite nach window.open mit innerHTML auslesen

    • MoreThanWords
    • 7. September 2007 um 08:22

    Sorry, beim entfernen der nicht relevanten Codesegmente ist mir ein Fehler unterlaufen.

    Der Code ist jetzt auch nocht nicht optimal aber hier habe ich für den IE eine lauffähige Version.

    FireFox kann das Body Tag nur auslesen, wenn das Fenster in vorhergehenden Prozess schonmal geladen wurde sprich wenn der Anwender 2 mal auf "Seite in neuem Fenster laden" drückt. Dies wird später aber nicht mehr funktionieren, da ich mehrere Seiten auslesen, ausschneiden und einfügen möchte.

    Dies ist der JS Code:

    HTML
    <html><head><title>Test</title> 
    
    
    <script> 
    function neueTexte () { 
      var newWin = window.open('', 'testxxx', 'menubar=yes, toolbar=yes, scrollbars=yes,resizable=yes,width=200,height=200,,left=1200,top=450'); 
    //  newWin.document.open(); 
      var tempDoc; 
      try 
      { 
         tempDoc = TreeMenu_processDoc('test_Seiteauslesen2.html', tempDoc, newWin); 
      } 
      catch(E) 
      { 
         alert(E.message); 
      } 
    } 
    
    
    
    
    //********************************************** 
    function TreeMenu_processDoc(URL, tempDoc, newWin) 
    { 
      var tempDoc = window.open(URL, 'test', 'width=1,height=1,left=1200,top=750');  
      getBody(tempDoc, newWin ); 
      getBodyContent(tempDoc, newWin); 
    }  
    
    
    function getBody(win, newWin) 
    { 
    	var strTest; 
    	var intI; 
    	intI = 1; 
    	while(intI < 6) 
    	{ 
    	    if(win && win.document && win.document.body) 
    	    { 
    	      strTest = win.document.getElementsByTagName("body")[0].innerHTML; 
    	      intI = 100; 
    	    }       			
        	intI++;    
    	} 
    } 
    
    
    function getBodyContent(win, abc) 
    { 
    
    
        var intI; 
       intI = 1; 
       var strText; 
       while(intI < 2) 
       { 
          var strText = win.document.getElementsByTagName("body")[0].innerHTML; 
          if (!(strText== "")) 
          { 
              abc.document.write(win.document.getElementsByTagName("body")[0].innerHTML); 
              intI = 100; 
          }       
          else 
          { 
             window.setTimeout( function() {dummywait()}, 2000); 
    
    
             intI++; 
          } 
       } 
    
    
    } 
    
    
    function dummywait() 
    { 
    
    } 
    
    
    </script> 
    </head><body> 
    <h1>Dynamisch, sehr dynamisch</h1> 
    
    
    
    
    <p><a href="javascript:neueTexte()">Seite in neuem Fenster laden</a></p> 
    </body></html>
    Alles anzeigen

    Dies ist die HTML Seite 'test_Seiteauslesen2.html', die ausgelesen wird.

    HTML
    <html><head><title>Test</title>
    </head><body>
    ein kurzer <b> Text </b> von Seite 1
    </body></html>
  • Seite nach window.open mit innerHTML auslesen

    • MoreThanWords
    • 6. September 2007 um 16:50

    Hallihallo Zusammen,

    Ich habe schon in mehreren Foren (JavaScript) ein Beitrag erstellt, aber das eigentliche Problem konnte nicht komplett gelöst werden.

    Was ich versuche ist eine eine Seite "test.html" in einem neuen Fenster zu öffnen, den Inhalt des Body Tags mit innerHTML auszulesen und diesen in ein neues Fenster zu kopieren. Mit dem IE geht dies Problemlos ich denke der JavaScript Code wird unterschiedlich interpretiert:


    HTML
    <html><head><title>Test</title>
    
    
    <script>
    function neueTexte () {
      var newWin = window.open('', 'testxxx', 'menubar=yes, toolbar=yes, scrollbars=yes,resizable=yes,width=200,height=200,,left=1200,top=450');
    //  newWin.document.open();
      var tempDoc;
      try
      {
      	tempDoc = TreeMenu_processDoc('test_Seiteauslesen2.html', tempDoc, newWin);
      }
      catch(E)
      {
      	alert(E.message);
      }
    }
    
    
    
    
    //**********************************************
    function TreeMenu_processDoc(URL, tempDoc, newWin) 
    { 
      var tempDoc = window.open(URL, 'test', 'width=1,height=1,left=1200,top=750');  
      getBody(tempDoc, newWin ); 
      getBodyContent(tempDoc, newWin);
    }  
    
    
    function getBody(win, newWin) { 
    var strTest;
    var intI;
    intI = 1;
    while(intI < 6)
    {
    	if(win && win.document && win.document.body) 
    	{
    		strTest = win.document.getElementsByTagName("body")[0].innerHTML;
    		intI = 100;
    	}		
    	else 
    	{
    	intI++;	
    }
    } 
    
    
    function getBodyContent(win, abc) 
    {
    
    
    	 var intI;
    	intI = 1;
    	var strText;
    	while(intI < 2)
    	{
    		var strText = win.document.getElementsByTagName("body")[0].innerHTML;
    		if (!(strText== ""))
    		{
    			 abc.document.write(win.document.getElementsByTagName("body")[0].innerHTML);
    			 intI = 100;
    		}		
    		else 
    		{
    			window.setTimeout( function() {dummywait()}, 2000); 
    
    
    			intI++;
    		}
    	}
    
    
    }
    
    
    function dummywait()
    {
    
    }
    
    
    </script>
    </head><body>
    <h1>Dynamisch, sehr dynamisch</h1>
    
    
    
    
    <p><a href="javascript:neueTexte()">Seite in neuem Fenster laden</a></p>
    </body></html>
    Alles anzeigen

    Kann es sein, das FireFox die neue Seite erst komplett lädt, wenn das JavaScript komplett ausgeführt wurde?
    Hat jemand vielleicht einen Workarround für FireFox? (Ajax geht nicht, da es sich um HTML Seiten handelt, die ausgelesen werden - beim HTTP Object gibt es keine InnerHTML Funktion)
    Kennt jemand eine FireFox Hotline, bei der man technische Informationen erhalten kann wie FireFox an der Stelle funktioniert?

    Viele Grüße

Unterstütze uns!

Jährlich (2025)

60,4 %

60,4% (392,55 von 650 EUR)

Jetzt spenden
  1. Kontakt
  2. Datenschutz
  3. Impressum
Community-Software: WoltLab Suite™
Mastodon