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?
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?
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ị.
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
Vừa nãy. Got sidetracked. – rossipedia
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
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);
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. –
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
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);
bạn đã thử bất cứ điều gì? –
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ó. –