Window.open不返回窗口引用IE9

时间:2012-01-26 14:17:27

标签: javascript asp.net reference internet-explorer-9 window.open

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

问题是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
}

2 个答案:

答案 0 :(得分:1)

在分配线的末尾有一个额外的paren。

另外,您是否尝试以指定的功能关闭窗口?如果没有,您可能需要在函数外部声明窗口变量,以便在需要时将其关闭。

答案 1 :(得分:1)

除了语法错误(两个逗号,两个parentesis结束)......

您正在打开一个窗口,该窗口位于浏览器外部,即您的默认邮件客户端。你无法通过javascript控制它。

也许这是一个即时性问题,请尝试使用:

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

然后拨弄200ms以查看它是否有效。

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

您不需要以这种方式打开或关闭任何窗口