denstorti
denstorti

Reputation: 127

Window.open doesn't return the window reference IE9

I'm using a script to mount my mailto link and call the default email editor. But I can't use document.location.href because of some bug in IE9, so I use window.open. It works. But I need to close the IE windows opened.

The problem is the window.close doesn't return the window reference.

function doMailto() {
   var sMailto = 'mailto:?bcc=';
   sMailto += document.getElementById('<%= txtEmails.ClientID %>').value;
   out = window.open(sMailto);
   out.close();  //CANT CALL CLOSE, BECAUSE OUT IS NULL
}

Upvotes: 1

Views: 2276

Answers (2)

aside the syntax errors (two commas, two parentesis closing)...

you are opening a window that is external to the browser, your default mail client. You cannot control it through javascript.

Maybe it's an immediacy problem, try using:

var out = window.open()...
setTimeout(function(){out.close()}, 200)

and fiddle with the 200ms to see if it works then.

try

top.location.href = 'mailto:....';

you won't need to open or close any windows this way

Upvotes: 1

Sam
Sam

Reputation: 10113

You have an extra paren at the end of the assignment line.

Also, are you trying to close the window in the same function as assigned? If not, you may need to declare the window variable outside the function so it can be closed when needed.

Upvotes: 1

Related Questions