如何在按钮点击事件上打开新的浏览器窗口?

时间:2012-01-29 19:35:39

标签: c# asp.net

如何在C#ASP.NET中按钮点击事件打开新的浏览器窗口?

请分享任何例子。

我正在做以下代码。请让我知道我哪里出错了。

btn_Click()
{
    if(condition==true)
    {
        this.Page.ClientScript.RegisterStartupScript(
            this.GetType(),
            "page_index_script2", 
            "openNewWindow();", 
            true
        );
    }
}

JavaScript函数是

function openNewWindow()
{
    alert('HI');
    window.open('http://www.stackoverflow.com');  
}

当我从javascript函数运行代码时警报正常工作但新窗口没有打开。

4 个答案:

答案 0 :(得分:16)

你可以使用这样的代码,你可以根据需要调整高度和宽度

    protected void button_Click(object sender, EventArgs e)
    {
        // open a pop up window at the center of the page.
        ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", "var Mleft = (screen.width/2)-(760/2);var Mtop = (screen.height/2)-(700/2);window.open( 'your_page.aspx', null, 'height=700,width=760,status=yes,toolbar=no,scrollbars=yes,menubar=no,location=no,top=\'+Mtop+\', left=\'+Mleft+\'' );", true);
    }

答案 1 :(得分:10)

可以使用OnClientClick [MSDN] 事件处理程序和window.open 在客户端完成所有操作 [MDN]

<asp:Button 
     runat="server" 
     OnClientClick="window.open('http://www.stackoverflow.com'); return false;">
     Open a new window!
</asp:Button>

答案 2 :(得分:2)

Response.Write('...打开窗口的JavaScript ...')

http://www.aspspider.com/qa/Question2714.aspx

答案 3 :(得分:2)

或写入回复流:

Response.Write("<script>");
Response.Write("window.open('page.html','_blank')");
Response.Write("</script>");