【问题标题】:WebBrowser control: how to suppress message: do you want to close this windowWebBrowser 控件:如何抑制消息:是否要关闭此窗口
【发布时间】:2009-09-21 08:29:22
【问题描述】:

我是 WebBrowser 控件的新手。在当前项目中,我们使用 WebBrowser 控件与现有项目进行集成。所有弹出窗口都以新的窗口形式显示。在弹窗上调用“javascript window:close”时,IE实例总是提示:你要关闭这个窗口吗?我们正在使用 WndProce 来检查 WM_Destroy 以通知父表单 ie 即将关闭,这可以正常工作。我们唯一不喜欢该控件的是消息“您要关闭此窗口吗”。有什么办法可以屏蔽消息吗?

任何建议都将受到高度赞赏。谢谢。

【问题讨论】:

    标签: c# internet-explorer webbrowser-control wndproc


    【解决方案1】:

    尝试使用以下两个函数之一关闭弹出窗口:

    function closeWindow()
    {
        window.opener = self;
        window.close();
    }
    

    或者:

    function closeWindow()
    {
        window.open('', '_self');
        window.close();
    }
    

    【讨论】:

    • 第二个选项在 IE 中对我有用。你到底在指示浏览器做什么?
    • 它会打开一个没有特定 url 的新窗口,目标为 '_self',这意味着目标窗口是运行它的窗口。效果是文档窗口使其自己的窗口成为打开窗口,从而获得它的所有权。然后它将有权关闭自己,因为它已经打开它......
    【解决方案2】:

    这是 IE 的一项安全功能。这个想法是为了防止潜在的恶意脚本关闭用户不想关闭的窗口。 例外情况是如果窗口是由同一域上的脚本打开的,这表明它是“拥有”该窗口的 Web 应用程序,因此它也可以关闭它。在这种情况下,您不会收到警告。

    【讨论】:

    • 但是,尽管我的脚本在同一个域上,但我仍然收到警告:/ 好尝试,IE - 但你又失败了
    • @SamWatkins:可能还要求它是当前会话中的同一个 Web 应用程序。
    • 这里的关键字是可编程控制而不是应用程序。
    猜你喜欢
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 2012-10-24
    • 2011-09-02
    相关资源
    最近更新 更多