2012-01-29 62 views
12

Làm thế nào để mở cửa sổ trình duyệt mới trên sự kiện bấm nút trong C# ASP.NET?Làm thế nào để mở cửa sổ trình duyệt mới trên sự kiện bấm nút?

Vui lòng chia sẻ bất kỳ ví dụ nào.

Tôi đang thực hiện mã sau đây. Xin vui lòng cho tôi biết nơi tôi đang đi sai.

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

Và hàm JavaScript là

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

Khi tôi chạy mã từ javascript công trình Alert chức năng nhưng cửa sổ mới là không nhận được mở ra.

+0

Bạn muốn cửa sổ mới được mở ra trước khi xử lý sự kiện trên mã phía sau hoặc chỉ cần đi đến một số liên kết trong một cửa sổ mới? – ivowiblo

+1

Vui lòng không thêm những thứ như "C# ASP.NET" vào cuối tiêu đề của bạn. Đó là những gì các thẻ cho. –

Trả lời

16

Bạn có thể sử dụng một số mã như thế này, bạn có thể điều chỉnh một chiều cao và chiều rộng theo nhu cầu của bạn

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

Làm cách nào để ngăn chặn tập lệnh bật lên này khi điều hướng trở lại trang? –

+0

@JamesWierzba Bạn không thể kiểm tra liên kết giới thiệu url hay gì đó? Tôi nghĩ rằng nên làm việc. – DotNetUser

2

Response.Write ('... javascript mở ra một cửa sổ ...')

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

+2

Lưu ý phụ: mã như vậy sẽ chạy với kiểm tra "trình chặn cửa sổ bật lên" trong trình duyệt và thông thường sẽ dẫn đến không có hoạt động (có thể đã hoạt động trở lại năm 2008 khi được trả lời). –

+0

Có, tất nhiên chúng ta phải luôn lo lắng về các tính năng của trình duyệt thực tế khi xử lý các cửa sổ bật lên. – Kristian

+0

liên kết trong câu trả lời bị hỏng – ihimv

10

Nó có thể được thực hiện tất cả trên client-side bằng cách sử dụng sự kiện OnClientClick[MSDN] xử lý và window.open[MDN]:

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

Tôi đã thử tất cả các chế độ kết thúc trở lại nhưng điều này là dễ nhất. Trong Code-Đằng sau, tôi sẽ làm tường kiểm tra cần thiết và xây dựng URL, sau đó móc nó vào OnClientClick trong thời trang này - btnButton.OnClientClick = "window.open ('" + customURL + "'); return false;" ; Điều này làm việc cho cả hai nút và LinkButtons (trong trường hợp của tôi). – SollyM

+0

Điều này thật hoàn hảo. –

2

Hoặc gửi thư cho các dòng phản ứng:

Response.Write("<script>"); 
Response.Write("window.open('page.html','_blank')"); 
Response.Write("</script>"); 
Các vấn đề liên quan