Der Martin: Mailprogramm mit Javascript zum Senden öffnen

Beitrag lesen

Hi,

wenn ich auf einen Link klicke, wird eine Javascript-Funktion aufgerufen.
Die setzt einen Ajax-Aufruf ab, PHP-Programm erzeugt und speichert PDF-Datei, meldet die URL der PDF-Datei zurück.
Diese URL baut Javascript in einen mailto: Aufruf ein und öffnet damit ein neues Fenster. Das neue Fenster öffnet das Mailprogramm.

klingt ziemlich kompliziert ...

  1. Wenn Popups geblockt sind, muss das neue Fenster per Klick freigegeben werden.

Kommt auf den Browser an. Eventuell passiert auch einfach gar nichts.

  1. Das neue Fenster bleibt offen trotz close- Kommando.

Ja. Normalerweise darf Javascript ein Fenster auch wieder schließen, das es selbst geöffnet hat. Hier gehört das geöffnete Fenster aber nicht dem Browser, sondern einem anderen Programm, daher funktioniert das Schließen nicht mehr. Ich betrachte das als Variante der SOP.

var mail_win = window.open( mail_url,"email" );
        mail_win.close();

Öffnen und sofort wieder schließen?? Hältst du das für sinnvoll?
Außerdem gibst du dem System überhaupt keine Zeit - wenn close() aufgerufen wird, ist das Fenster aller Wahrscheinlichkeit nach noch nicht einmal geöffnet.

Ist das close-Kommando falsch oder "wartet" Javascript das Öffnen gar nicht ab?

Nein. Nein.

Javascript gibt nur die Aufforderung an den Browser, ein neues Fenster mit der gewünschten URL zu öffnen, "sobald er Zeit dafür hat". Das geschieht dann nebenläufig, während das Script nahezu ungebremst weiterläuft.
Abgesehen davon: Selbst wenn das Schließen funktionieren würde - wozu? Schließlich muss doch der Nutzer vorher auch noch das Absenden der Mailnachricht anstoßen.

Habe auch versucht, mit window.location.href="mailto:..." das vorhandene Fenster zu nutzen, Mailprogramm öffnet nicht.

Du kannst ja auch nicht einfach so eine Browserinstanz in einen Mailclient umwandeln.

Und wenn du schon serverseitig ein PDF-Dokument generierst, warum verschickst du dann nicht auch die Mailnachricht gleich von diesem PHP-Script aus?

So long,
 Martin

--
... und der FDP-Wähler gibt seine Stimme der FDP.
   (Faszinierende Erkenntnis meines Gemeinschaftskunde-Lehrers, 9. Schuljahr)
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(