在回发上打开新窗口
问题描述:
要求:我们有一个供用户提交的表格。 提交时,表单数据用于计算和生成报告。在回发上打开新窗口
回发时,显示确认消息和其他选项。 我们希望在新的窗口/选项卡中显示报告。
条件: 我们不想使用JavaScript上回发到打开一个新窗口onload
因为这将阻止谁已禁用JavaScript的用户。
可能的解决方案:
- 打开按钮点击了一个独特的ID的新窗口(让回传发生代码执行)。新窗口应请求报告,但代码将等待直至生成报告。在报告页面上,显示等待消息,其超时并允许用户刷新或在元中使用页面刷新。
- 使用JavaScript,但检测回发时是否启用了JS(通过在表单加载上使用JS设置变量值),如果禁用JS显示指向用户的报告链接否则在回发后使用JS在页面加载时打开窗口。
问题:
- 有没有什么更好的方法来做到这一点?
- 提高以上解决方案的任何提示?
- 你会选择哪一个,为什么?
答
建立与target=_blank
的链接,该链接重定向到生成报告并显示它的页面。
要访问您的网站的IMO用户将启用JavaScript。不支持JavaScript的网页是不是网络,也许这是一个几年前,但现在......
如果你想测试JS,你可以回传后注册的脚本:
// normal postback
ScriptManager.RegisterStartupScript(this, GetType(), "key", "script();", true);
// postback from a updatepanel
ScriptManager.RegisterStartupScript(updatePanel, updatePanel.GetType(), "key", "script();", true);
答
检查如果js是enabled,并且启用了js,则使用ClientScript.RegisterStartupScript(this.GetType(), "yourScript", script, true);
来执行您的js并打开您的报告页面。 如果js id未启用,则显示指向报告页面的链接。