是否可以禁用“您正在查看的网页正在尝试关闭窗口。是否要关闭它?”?
据我所知,这是多年的病毒和恶意脚本活动的产物,但在合法的应用程序代码(ASP.NET)中,有没有什么方法可以将您的应用程序“注册”为APP,或者标记您可以传递给IE Popup,以便在关闭时不会显示它吗?
我正在使用的代码是在C#代码后面完成的:
ClientScript.RegisterClientScriptBlock(GetType(), "save", Utils.MakeScriptBlock("window.close();"));
Utils.MakeScriptBlock只是一个能够达到预期效果的功能。它'注入'一个<脚本......>标记其中的代码...
可能无法解决这个问题,否则,所有脚本小子都会使用这个技巧,但我想我会问,因为我不能只使用简单的IE“popups”作为(伪)模态对话框。
此代码发生在我的ButtonSave_Click()例程中,在所有内容都通过验证后等等......
** 编辑 **
仅供参考,这是在单击ADD按钮时打开弹出窗口的代码:
这是在Page_Init()...
ButtonAdd.Attributes.Add("onclick", "window.open('Add.aspx', 'ADD_WINDOW', 'scrollbars=no,width=550,height=550,location=no,menubar=no,resizable=yes,directories=no,status=no,toolbar=no'); return false;");
答案 0 :(得分:3)
如果您的脚本打开了窗口,则可以在没有弹出窗口的情况下关闭窗口。这有帮助吗?
修改强> 你已经用脚本打开了窗口。更改客户端脚本以调用self.close()。
ClientScript.RegisterClientScriptBlock(GetType(), "save", Utils.MakeScriptBlock("self.close();"));
答案 1 :(得分:0)
我不相信。正如您所说,以帮助防止恶意软件。
最后,浏览器并不知道你不是邪恶的。有关类似的想法,请参阅RFC 3514。
答案 2 :(得分:0)
我非常怀疑你的可能性 - 听起来像是用户必须在他们的IE设置中专门禁用的东西。
答案 3 :(得分:0)
如果用户打开浏览器窗口,则无法关闭它;但如果窗口是通过脚本打开的,你可以。听起来你只需要一个初始页面,用户可以通过“点击此处开始”链接开始,从中打开网站主要部分的新窗口;当他们全部完成后,关闭弹出窗口,他们将在初始浏览器窗口中显示“点击此处开始”消息。
答案 4 :(得分:0)
奇怪,但我发现了
<script type="text/javascript">
function closeWindow()
{
window.close();
return false;
}
</script>
然后调用
return closeWindow();
通常会解决这个问题。