我在点击事件上有一个按钮,我希望当用户点击它以打开另一个页面但是出现同样的问题时。
我试过这个
Response.Write("<script>window.open('http://www.google.com.hk/','_blank');</script>");
但问题是它会打开页面而不是新标签页
如何在新标签页中打开它?
答案 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。