SBB
SBB

Reputation: 8990

Javascript mailto using window open

I currently have a form set up with 5 radio options. I have a switch statement depending on the option you pick and that determines where the email is going to go.

Inside my switch, I have this piece of code.

window.open("mailto:"+emailTo+'?cc='+emailCC+'&subject='+emailSub+'&body='+emailBody);

It all works fine when it opens up my email client with all of the content however it also opens a blank page in the browser.

Is there another way to achieve this or prevent a blank window from opening but still make it as if you clicked on the href:mailto ?

Upvotes: 49

Views: 80701

Answers (4)

BigBadBigBad
BigBadBigBad

Reputation: 461

The second argument in window.open is the target.

window.open('mailto:'+emailTo+'?cc='+emailCC+'&subject='+emailSub+'&body='+emailBody, '_self'); should do the trick.

Upvotes: 35

Spr89
Spr89

Reputation: 79

After your "window.open" statement, try running an "if statement" to check and see if a new window was opened so that it will close.

if (win && win.open && !win.closed) 
    {   
    win.close();
    }

This will happen very fast so the users might notice that a window opened and closed before the email application opened.

Upvotes: -5

Gehtdich Nichtsan
Gehtdich Nichtsan

Reputation: 97

Location.href doesn't seem to work in chrome. I do it like this:

x=window.open("mailstring");
x.close();

Works perfect for me.

Upvotes: 5

Rodrigo5244
Rodrigo5244

Reputation: 5545

Instead of:

window.open("mailto:"+emailTo+'?cc='+emailCC+'&subject='+emailSub+'&body='+emailBody);

You can try:

location.href = "mailto:"+emailTo+'?cc='+emailCC+'&subject='+emailSub+'&body='+emailBody;

Upvotes: 60

Related Questions