Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 15.07.2013, 16:22
acb1980 acb1980 ist offline
Neuer Benutzer
neuer user
Thread-Ersteller
 
Registriert seit: 25.12.2010
Beiträge: 21
acb1980 befindet sich auf einem aufstrebenden Ast
Standard Neues Fenster öffnen mit JS

n'Abend,

wie man aus einer HTML-Seite heraus eine Seite in einem neuen Fenster öffnet ist ja hinlänglich bekannt. Alternativ zu target="_blank" besteht ja auch die Möglichkeit, das Ganze mit JS zu realisieren, nämlich mit window.open(). Letzteres funktioniert jedoch nicht immer, vor allem bei neueren Browsern funktioniert window.open() nur noch dann, wenn man es direkt einen onClick-Event zuweist und so auch anruft.

Mein Problem ist nun konkret Folgendes: Ich habe eine Web-Application, in der zu jedem Formular eine Druckversion abrufbar sein soll. Da diese Druckversion in Form eines PDF-Dokuments erzeugt wird, möchte ich das nur ungern in einem iFrame o.ä. anzeigen, sondern ein neues Fenster öffnen. Mache ich das jedoch direkt (also über einen normalen Link), so fehlen in der Druckversion die letzten Änderungen.

Da ich eigentlich alle Funktionen über AJAX realisiert habe war meine Idee nun die, dass ich zunächst das Formular via AJAX speichere und anschließend die Druckversion in einem neuen Fenster aufrufe. Das funktioniert jedoch aufgrund der o.g. Einschränkungen nicht, denn window.open() wird ja erst im Callback des AJAX-Calls (wenn die Änderungen in die DB geschrieben wurden) aufgerufen und fällt damit unter die Browser-Restriktion des nicht direkten Klickens.

Im Moment stecke ich daher tatsächlich komplett fest. Ich habe auch schon versucht, die Druckversion mit Hilfe von jQuery zu öffnen, indem ich einen Klick auf einen Link simuliere, das funktioniert jedoch nur mit entsprechend registrierten Events, nicht jedoch mit den "normalen" HTML-Attributen wie HREF und TARGET.

Ich bin nun am Ende meiner Ideen, vielleicht findet sich ja hier noch jemand, dem eine Alternative einfällt. Ansonsten muss ich wohl oder übel doch auf eine iFrame-Lösung zurückgreifen...
Mit Zitat antworten
Sponsored Links