在另一个选项卡中打开另一个asp.net页面

时间:2015-04-06 10:39:08

标签: c# asp.net .net

我在点击事件上有一个按钮,我希望当用户点击它以打开另一个页面但是出现同样的问题时。

我试过这个

Response.Write("<script>window.open('http://www.google.com.hk/','_blank');</script>");

但问题是它会打开页面而不是新标签页

如何在新标签页中打开它?

2 个答案:

答案 0 :(得分:2)

试试这个

ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "key", "window.open('http://www.google.com.hk/','_blank');", true);

答案 1 :(得分:1)

我更愿意使用RegisterStartupScript代替RegisterClientScriptBlock

以下是使用RegisterStartupScript的方法。你应该在你的情况下使用它。

ScriptManager.RegisterStartupScript(this.Page, this.Page.GetType(), "ReportPage", "javascript:window.open('EmailTemplate.aspx?emailAddress="+emailAddress+"','_blank');", true);

因为当您使用RegisterStartupScript时,它会在页面中的所有元素之后(在表单的结束标记之前)呈现您的脚本。这使得脚本可以调用或引用页面元素,而不会在页面的DOM中找不到它们。

另一方面,当您使用RegisterClientScriptBlock时,脚本会在Viewstate标记之后,但在任何页面元素之前呈现。由于这是一个直接脚本(不是可以调用的函数,它会立即被浏览器执行。但是浏览器在这个阶段没有在Page的DOM中找到标签,因此你应该收到一个& #34;找不到对象&#34;错误。

有关详细信息,请访问this answer。

相关问题