Joachim: JS Funktion windows.print()

Hallo!

Der Code
<html><head><title>Test</title>
<script type="text/javascript">
var Fenster1;
function EtikettenFenster (Adresse) {
    Fenster1 = window.open( Adresse, "Druckertest", "width=300,height=400,left=100,top=200");
    Fenster1.print();
}
</script>
</head><body><form>
<input type="button" name="Etikettdrucken" value="Etikett drucken" onclick="EtikettenFenster('datei.html');">
</form></body></html>

führt auf meiner Maschine zu einem Fehler. Zunächst wird die Datei 'datei.html' in einem separaten Window gezeigt, dann geht die Printerselect Box auf. Klickt man auf "OK",  kommt sofort die Fehlermeldung: "Die Seite wurde ersetzt, während Sie drucken wollten. Bitte versuchen Sie es nochmal". Und JS Konsole erscheint die Fehlermeldung:

Fehler: [Exception... "'Die Erlaubnis für das Lesen der Eigenschaft XULElement.accessKey wurde verweigert' when calling method: [nsIDOMXULLabelElement::accessKey]"  nsresult: "0x8057001e (NS_ERROR_XPC_JS_THREW_STRING)"  location: "JS frame :: file:///F:/nwi/Projekte/d&h/Frachtbrief/printtest.html :: EtikettenFenster :: line 12"  data: no]
Quelldatei: file:///F:/nwi/Projekte/Frachtbrief/printtest.html
Zeile: 12

Muss irgentwas in den Browsereinstellungen geändert werden, um Drucken zu können oder was ist los?

Grüße,

Joachim

  1. Hi,

    Muss irgentwas in den Browsereinstellungen geändert werden, um Drucken zu können oder was ist los?

    nein. Du öffnest den Druck-Dialog, während gerade mal das Fenster da ist, aber noch lange kein Inhalt. Sofern die HTTP-Kommunikation schneller ist als der User, wird es diesen Fehler geben - und sollte der User schneller sein, gibt es noch nichts zu Ausdrucken.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Danke.

      Habe einen "confirm" Dialog eingebaut, nu klappt es.
      Kann man eigentlich einen spezifischen Drucker (aus der Druckerliste) vorgeben?

      Grüße,

      Joachim

      1. Hi,

        Habe einen "confirm" Dialog eingebaut, nu klappt es.

        falsch. Es klappt _zufällig_, weil Du in Deinem Testfall die Funktion hinreichend verzögert hast.

        Kann man eigentlich einen spezifischen Drucker (aus der Druckerliste) vorgeben?

        Um Gottfrieds Willen! Natürlich nicht.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
  2. Hi,

    Fenster1 = window.open( Adresse, "Druckertest", "width=300,height=400,left=100,top=200");
        Fenster1.print();

    Schlecht. Woher weisst Du, dass Fenster1 vollständig geladen ist? Frage dies über einen intervall ab, befor Du auf Methoden des Fensters zugreifst.

    Gruesse, Joachim

    --
    Am Ende wird alles gut.
    1. Hi,

      Schlecht. Woher weisst Du, dass Fenster1 vollständig geladen ist?

      anders gefragt: Wer (als einziger!) weiß, wann Fenster1 vollständig geladen ist?

      Frage dies über einen intervall ab,

      Schlecht.

      Cheatah

      --
      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
      1. Hi,

        anders gefragt: Wer (als einziger!) weiß, wann Fenster1 vollständig geladen ist?

        Fenster1

        Frage dies über einen intervall ab,

        Schlecht.

        Höchstens unkonkret. Fenster1 setzt eine Variable im opener, den frage ich per intervall ab.

        Maulbacke ;-)

        Gruesse, Joachim

        --
        Am Ende wird alles gut.
        1. Hi,

          anders gefragt: Wer (als einziger!) weiß, wann Fenster1 vollständig geladen ist?
          Fenster1

          richtig; genauer gesagt das darin enthaltene Dokument.

          Frage dies über einen intervall ab,
          Schlecht.
          Höchstens unkonkret.

          Nein, schlecht. Du wartest auf ein Ereignis, nicht auf einen Zustand.

          Maulbacke ;-)

          Wenn schon, dann -tasche. Hunger jetzt ;-)

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
      2. Hallo,

        Wer (als einziger!) weiß, wann Fenster1 vollständig geladen ist?

        Das ist kein Naturgesetz, denn einige Browser kennen:

        var fenster = window.open("bla.html", "f");  
        fenster.onload = function () {  
         alert("geladen");  
        };
        

        Mathias

        --
        »No nations, no borders.«
        SELFHTML Weblog