【问题标题】:How to open new browser window on button click event?如何在按钮单击事件上打开新的浏览器窗口?
【发布时间】:2012-01-29 19:35:38
【问题描述】:

如何在 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 函数运行代码时,Alert 有效,但新窗口没有打开。

【问题讨论】:

  • 您希望在处理后面代码上的事件之前打开新窗口,或者只是转到新窗口中的某个链接?
  • 请不要在标题末尾添加“C# ASP.NET”之类的内容。这就是标签的用途。

标签: c# asp.net


【解决方案1】:

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

    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);
    }

【讨论】:

  • 在导航回页面时如何防止此弹出脚本被运行?
  • @JamesWierzba 你能不检查 url referrer 什么的吗?我认为这应该可行。
【解决方案2】:

这一切都可以在客户端使用 OnClientClick[MSDN] 事件处理程序和 window.open[MDN] 完成

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

【讨论】:

  • 我尝试了所有后端模式,但这是最简单的。在 Code-Behind 中,我会进行必要的检查并构建 URL,然后以这种方式将其挂接到 OnClientClick - btnButton.OnClientClick = "window.open('"+ customURL +"'); return false;" ;这适用于按钮和链接按钮(在我的情况下)。
  • 这太完美了。
【解决方案3】:

Response.Write('... javascript 打开一个窗口...')

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

【讨论】:

  • 旁注:此类代码将针对浏览器中的“弹出窗口拦截器”检查运行,并且通常会导致无操作(可能在 2008 年得到答复时可以使用)。
  • 是的,当然我们在处理弹出窗口时必须始终关注实际浏览器的功能。
  • 答案中的链接已损坏
【解决方案4】:

或者写入响应流:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 1970-01-01
    • 1970-01-01
    • 2022-06-11
    相关资源
    最近更新 更多