1

我正在使用脚本来挂载我的mailto链接并调用默认的电子邮件编辑器。但是由于IE9中的一些错误,我无法使用document.location.href,所以我使用window.open。有用。但我需要关闭打开的IE窗口。Window.open不会返回窗口引用IE9

问题是window.close不返回窗口引用。

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 
} 
+0

可能的复制(与解决方案):http://stackoverflow.com/questions/6100451/ie9-and -self-close – turbo

回答

1

您在作业行末尾有一个额外的paren。

此外,你是否试图关闭与分配相同的功能窗口?如果没有,您可能需要在函数外部声明窗口变量,以便在需要时可以关闭窗口变量。

+0

我希望关闭这些新的IE窗口(或返回到前一个URL),而默认的邮件客户端是打开的(这是一个独立的进程,我不想通过javascript关闭它) – denstorti

1

抛开语法错误(两个逗号,二parentesis收盘)...

你打开一个窗口,是外界给浏览器,默认邮件客户端。你无法通过javascript来控制它。

也许这是一个紧迫的问题,请尝试使用:

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

,并与200毫秒拨弄,看看它的工作原理呢。

尝试

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

你不会需要打开或关闭任何窗口这样

+0

我改变了这些语法错误,我发布了错误的代码,但事实是,它打开了默认的邮件客户端,但也有另一个窗口。 – denstorti

+0

j ust编辑了答案 –

+0

André,你的代码就这样工作了。 但我需要打开默认的邮件客户端,并且当我使用window.open('mailto:....')时,它将为out变量返回一个空引用! – denstorti

相关问题