要求:我们有一个表单供用户提交。 提交时,表单数据用于计算和生成报告。
在回发时,会显示一条确认消息和更多选项。 我们想在新窗口/标签中显示报告。
条件:
我们不想在回发时使用 JavaScript 来打开新窗口 onload
,因为这会阻止禁用 JavaScript 的用户。
可能的解决方案:
- 使用唯一 ID 在单击按钮时打开一个新窗口(让回发发生以执行代码)。新窗口应请求报告,但代码会等待报告生成。在报告页面上,显示超时等待消息并允许用户刷新或使用元页面刷新。
- 使用 JavaScript,但检测 JS 是否在回发时启用(通过在表单加载时使用 JS 设置变量值),如果 JS 被禁用,则显示指向用户的链接以进行报告,否则在回发后的页面加载时使用 JS 打开一个窗口。
问题:
- 有没有更好的方法来做到这一点?
- 有任何改进上述解决方案的技巧吗?
- 您更喜欢哪一个,为什么?
最佳答案
使用 target=_blank
建立链接,重定向到生成报告的页面,然后显示它。
想要访问您网站的 IMO 用户将启用 javascript。没有javascript的web就不是web,也许几年前是这样,但现在...
如果要测试js,可以在postback后注册一个脚本:
// normal postback
ScriptManager.RegisterStartupScript(this, GetType(), "key", "script();", true);
// postback from a updatepanel
ScriptManager.RegisterStartupScript(updatePanel, updatePanel.GetType(), "key", "script();", true);
关于c# - 在回发时打开新窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3941400/