Safari: Verhindert zwei Druckdialoge beim Drucken eines Iframes

8

Meine Website hat eine Schaltfläche "Diese Seite drucken".

Ich lade eine statische Druckvorlage-HTML-Datei in einen versteckten Iframe, kopiere den HTML-Code mit jQuery auf diese Seite und rufe window.print() von der Iframe-Seite auf. Alles ist gut, außer bei Safari, das auch den übergeordneten Frame drucken möchte, damit ich zwei Druckdialoge öffne.

Ich habe versucht, window.print innerhalb des iframe aufzurufen und es vom übergeordneten Objekt aufzurufen, das auf den iframe ( document.printFrame.window.print() ) abzielt, aber ich erhalte trotzdem zwei Dialoge.

Kennt jemand einen Weg um dies? Ich möchte nur den Iframe, nicht die Eltern drucken.

    
Diodeus - James MacFarlane 15.07.2010, 18:00
quelle

2 Antworten

1

Ich kann den Fehler nicht reproduzieren; es funktioniert gut für mich (dh ich bekomme nur einen Druckdialog), egal ob ich es aus dem iframe oder dem Elternrahmen heraus rufe. Vielleicht rufst du window.print () zweimal irgendwo an?

Ich führe Safari 4.0.3 unter Mac OS X 10.6

aus

BEARBEITEN: Hier ist es: Ссылка

EDIT 2: Ich habe es gerade auf Safari 5.0 / Windows 7 getestet und es funktioniert einwandfrei. Sind Sie sicher, dass es sich nicht um etwas anderes in Ihrem Code handelt?

EDIT 3 : Habe das in mehreren Versionen von Safari auf WinXP getestet:

%Vor%     
quantumSoup 19.07.2010, 02:31
quelle
0

Versuchen Sie es. Setzen Sie das in besagten iframe:

%Vor%

dann im Elternteil:

%Vor%

Sollte das auch nicht funktionieren, würde ich versuchen, ein neues Fenster / Tab zu öffnen und es mit dem druckbaren HTML zu füllen.

%Vor%

Zwei kleine Dinge, auf die Sie achten sollten, sind

  • split </script> im neuen Fenster, damit Sie nicht vorzeitig beenden
  • Verwenden Sie setTimeout (), um nach dem Beenden von onLoad () ausgeführt zu werden, anderenfalls sehen Firefox-Benutzer möglicherweise eine leere Seite unterhalb des Druckdialogs
Michael Foukarakis 23.07.2010 05:35
quelle

Tags und Links