【发布时间】: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