2014-10-02 58 views
1

我有一个HTTPHandler执行一个小的工作单元。我没有“输出”我想要显示。有没有从代码关闭浏览器窗口,因为我离开子的方法:即对最终用户重要通过电子邮件发送工作单位的作为一个HTTPHandler.ashx完成ProcessRequest如何关闭浏览器窗口与代码

Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest 
' unit of work 
' would like to close browser window here 
End Sub 

详细信息。有没有简单的方法来关闭浏览器窗口(或选项卡)与代码(如果可能,没有Javascript)?

UPDATE:

我尝试这样做:

context.Response.Write("<script>window.open('', '_self', ''); window.close();<script>") 

随着谷歌Chrome,我刚刚回来的代码作为消息(不是 “行动” 的预期)。还有更多需要被包裹进Response.Write还是我误解了某些东西?

UPDATE NO.2:

我还在研究。无法让这个工作;即使有Response.Redirect的以下closeWindow.html文件:

<!doctype html> 
<html> 
<head> 
<title> 
</title> 
</head> 
<body> 
<script type='text/javascript'> 
    window.open('', '_self', ''); 
    window.close(); 
</script> 
</body> 
</html> 

谷歌浏览器的调试器提供了这个错误:

scripts may only close the windows that were opened by it 

,并没有什么事情发生。所以,我搜索,发现这个SO螺纹:

window.close and self.close do not close the window in Chrome

显然,还有更多的这一点。如果我无法在Chrome中使用它,那么我会放弃,只是吐出一个简单的回应。仍在研究这里。

回答

1

通过JavaScript关闭窗口将是唯一的出路,所以你必须编写如下,以响应:

string closeWindow = @"<html><head></head><body><script>window.open('', '_self', ''); window.close();</script></body></html>"; 
context.Response.Write(closeWindow); 

第一条语句防止几乎所有的浏览器的提示。

+0

谢谢。请看我的更新作为后续。 – 2014-10-02 19:38:51

+0

@JohnAdams,脚本必须在html页面才能执行。看到我更新的答案。 – 2014-10-02 19:55:42

+0

非常感谢。显然这个问题更多。请参阅我的第二次更新。以为你应该知道我的立场,我非常感谢你的快速帮助。 – 2014-10-02 20:43:27