2013-08-07 49 views
5

Chúng tôi đang sử dụng ASP.NET Webforms (không phải MVC).ASP.NET Response.Redirect để mở một cửa sổ trình duyệt mới?

Câu hỏi của tôi là: Có thể mở một cửa sổ trình duyệt mới bằng cách sử dụng đăng lại và sau đó là một số phản hồi.Redirect?

+1

bạn đã thử bất cứ điều gì? –

+0

Response.Redirect không thể mở trình duyệt như Response.Redirect là lệnh phía máy chủ và trình duyệt không tồn tại trên máy chủ. Bạn cần phải ném một mã javascript để mở một cửa sổ mới như @ JLC007 đề xuất trong câu trả lời của nó. –

Trả lời

0

Câu trả lời ngắn? Số

Câu trả lời dài:

ASP.NET là khuôn khổ phía máy chủ, trong khi khái niệm cửa sổ trình duyệt là phía máy khách. Response.Redirect chỉ cần gửi một tiêu đề Location: [whatever the new url is] như một phần của luồng đầu ra. Nó chỉ xảy ra mà khá nhiều tất cả các trình duyệt xử lý tiêu đề đó bằng cách tải lên các url đó là trong tiêu đề đó.

Cách không đau đớn nhất sẽ sử dụng javascript trên postback để mở cửa sổ mới, như được nêu trong câu trả lời JLC007's. Một tùy chọn có thể khác là sử dụng thuộc tính target trên biểu mẫu được hiển thị.

+0

Tôi cho rằng "thời gian" là tương đối, nhưng khi nào câu trả lời dài hơn sẽ đến? – Patrick

+0

Vừa nãy. Got sidetracked. – rossipedia

+0

Tôi có thể sử dụng một nguồn khác khi liên kết đến mục tiêu, cụ thể là [MDN] (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form#attr-target). Mặc dù w3schools thường có thông tin hợp lệ, có câu hỏi về chất lượng (http://www.w3fools.com/). – Patrick

6

Tôi chưa từng gặp các trường hợp mà Response.Redirect có thể điều hướng mở một cửa sổ mới.

Dưới đây là một cách để làm việc đó không sử dụng Response.Redirect mà bạn có thể thử:

ScriptManager.RegisterStartupScript(this, typeof(string), "New_Window", "window.open('http://www.website.com', null, 'height=800,width=1280,status=yes,toolbar=yes,menubar=yes,location=no');", true); 
+0

Bạn có thể thêm ''_blank'' vào vị trí của' null' nhưng tôi đã thử nghiệm nó và cả hai đều cho kết quả tương tự. Nó mở ra một cửa sổ mới. –

+0

Lưu ý rằng các trình duyệt có thể coi các tập lệnh chạy trên tải trang theo cách này như được bắt đầu theo trang, thay vì bắt đầu do người dùng thực hiện. Các liên kết như vậy có thể bị chặn bởi trình chặn cửa sổ bật lên. – Brian

0

Hãy thử điều này

ScriptManager.RegisterStartupScript(this, typeof(string), "openWindow", 
    "window.open('http://www.website.com', target="_blank", 
    'height=800,width=1280,status=yes,toolbar=yes,menubar=yes,location=no');", 
     true); 
+0

Và điều này khác với câu trả lời của JLC007, làm thế nào? Mục tiêu – Patrick

+0

khác và sử dụng để mở cửa sổ mới – Amit

Các vấn đề liên quan