【问题标题】:Confirm IE Modal Dialog Closure For Valid Purpose确认 IE 模态对话框关闭是否有效
【发布时间】:2010-08-26 21:35:56
【问题描述】:

我刚刚使用 .NET 3.5 编写了一个 Word 文档创建 Web 应用程序,该应用程序使用来自 SQL 后端的 XML 和 XSL-T 样式表将 Word xml 文档作为模板转换为用户发送给客户端的字母。一切运行良好,我对结果很满意,xslcompiledtransform 速度超快,即使是 xml 文档臃肿 :0) 。我遇到的唯一问题是,此应用程序是在旧的 .NET 1.1 应用程序的模式 IE 对话框中启动的,并且客户端希望在关闭模式对话框之前有条件地提示用户。

一旦用户调用了生成过程,就会触发部分回发事件,并且文档列表会显示在更新面板的列表视图中,当他们单击文档的名称时,文档会提供给他们并且IE 显示下载对话框,另一个部分回发用绿色勾号更新列表视图,表示用户已请求该文档。

客户端要求,如果用户在请求所有文档之前尝试关闭对话框,则会提示用户确认选项 OK 和 Cancel。我在表单上使用实际的“关闭”按钮实现了这一点显示一个符合弹出窗口,如果用户单击“确定”,则该窗口将使用 javascript hack 关闭。如果用户决定单击标准窗口 x 按钮,就会出现问题。我设法使用 IE 方法将 onunload 事件添加到正文并返回带有自定义消息的字符串,如 Microsoft CRM 使用的,但由于几个原因,这远非理想。

首先,它丑得要命,我不喜欢此功能附带的标准无法控制的附加消息。此外,我遇到的主要问题是,这是由每个部分回发引起的,这是可以理解的,但非常烦人,即使没有生成任何文件,或者它们已经被请求,并且全部被请求。

所以最后我的问题是:我是否可以在理想情况下以某种方式诱使 IE 取消 onunload 中的关闭,使用标准 javascript 确认使用我自己的包含简单逻辑的函数,可能使用 iframe 或类似的?或者在标准 IE 弹出窗口出现时添加一些逻辑?

我知道这是标准功能,出于良好的安全原因,它是客户真正想要的,而且这不是一个面向公众的网站,它只在公司内部使用。

在此先感谢您对华夫饼表示抱歉,但我只是想确保我提供了尽可能多的细节,因为我预料到了“为什么?”的最初问题。

保罗

【问题讨论】:

    标签: javascript asp.net internet-explorer


    【解决方案1】:

    随着版本的临近,没有人准备筛选我的华夫饼,我使用了标准的 IE onbeforeunload 事件。在我的 js 中,我有:

    window.onbeforeunload = PromptUserToClose
    
    function PromptUserToClose()
      if(!allDownloaded){
         return "Are you sure....."
      }
    

    但问题是我的更新面板中有 LinkBut​​tons 导致 PartialPost backs IE 由于某种原因被认为是窗口的卸载所以为了解决它我将它们更改为 asp:Hyperlinks 然后添加了一个 javascript postback 调用从服务器端使用Page.ClientScript.GetPostBackEventReference(Me, "MyCustomArgument")。这样就完成了。

    谢谢

    保罗

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-22
      • 1970-01-01
      • 1970-01-01
      • 2013-02-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多