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. FlorianM

Beiträge von FlorianM

  • code: 0x80040111 nsIDOMWindow.print

    • FlorianM
    • 11. Juli 2013 um 14:58

    Hallo zusammen,
    mit folgender Funktion soll lade ich Daten in ein iFrame und das soll dann gedruckt werden:

    Code
    function printPage (sURL,callback) {
    
    	    var oHiddFrame = document.createElement("iframe");
    	    oHiddFrame.src = sURL;
    	    oHiddFrame.style.visibility = "hidden";
    	    oHiddFrame.style.position = "fixed";
    	    oHiddFrame.style.right = "0";
    	    oHiddFrame.style.bottom = "0";
    	    document.body.appendChild(oHiddFrame);
    	   	oHiddFrame.contentWindow.onload = oHiddFrame.contentWindow.print;
    	   	oHiddFrame.contentWindow.onafterprint = function (callback) { 
    										   			document.body.removeChild(oHiddFrame); 
    										   			if(callback != undefined && typeof callback == 'function') callback();
    										   		}; 
    	}
    Alles anzeigen

    Als Callback übergebe ich

    Code
    location.reload()

    . Das Neuladen der Seite ist nötig, da sich mit anstoßen des Drucks Inhalte in der Session-Variable ändern sollen und neue Inhalte angezeigt werden sollen.

    Einmal klappt es aber bei weiteren Versuchen kommt sporadisch folgende Meldung in der Konsole und der Druckdialog wird nicht aufgerufen: "NS_ERROR_NOT_AVAILABLE: Component returned failure code: 0x80040111 (NS_ERROR_NOT_AVAILABLE) [nsIDOMWindow.print]"

    Die Meldung kommt nach keinem Erkennbaren Muster.

    Die index.php:

    HTML
    <!DOCTYPE html>
    <html lang="de">
    	<head>
    	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    	<script type="text/javascript" src="http://code.jquery.com/jquery-1.10.2.min.js"></script>
    	<script type="text/javascript">
    	function printPage (sURL,callback) {
    
    	    var oHiddFrame = document.createElement("iframe");
    	    oHiddFrame.src = sURL;
    	    oHiddFrame.style.visibility = "visible";
    	    oHiddFrame.style.position = "fixed";
    	    oHiddFrame.style.right = "0";
    	    oHiddFrame.style.bottom = "0";
    	    document.body.appendChild(oHiddFrame);
    	   	oHiddFrame.contentWindow.onload = oHiddFrame.contentWindow.print;
    	   	oHiddFrame.contentWindow.onafterprint = function (callback) { 
    										   			document.body.removeChild(oHiddFrame); 
    										   			if(callback != undefined && typeof callback == 'function') callback();
    										   		}; 
    	}
    
    	$().ready(function(){
    		$("#btnPrint").on("click",function(){printPage("//localhost/cystore/scripts/php/testPrint.php",location.reload())});
    		$("#btnKill").on("click",function(){
    
    		});
    	});
    
    </script>
    <title>Test</title>
    </head>
    <body>
    	<form id="print" action="" name="nPrint">
    		<input type="button" id="btnPrint" title="Print" name="nPrint"/>
    	</form>
    </body>
    </html>
    Alles anzeigen

    Die Seite von der die Daten geladen werden (für Testzwecke minimalisiert):

    PHP
    <?php
    echo "test";
    ?>

    Kann mir einer einen Tipp geben wie ich das Problem umgehen oder fixen kann?

    Info: Server: XAMPP, PHP: 5.3.5, FF: v22.0

    Vielen Dank

    FlorianM

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