2012-01-02 2 views

ответ

4

Открытие нового окна почти во всех браузерах в настоящее время должно быть вызвано из события щелчка пользователя. Почти все браузеры (и это охватывает около 99% случаев) блокируют всплывающее окно, которое вызывается из события загрузки страницы, поэтому я предлагаю вам пересмотреть свое решение, возможно, показывая ссылку, которая будет открываться в новом окне.

Что бы я сделал, откроется новое окно события click, которое откроет вашу страницу обработки, которая, в свою очередь, будет перенаправлена ​​на любую страницу. В основном, сначала откройте всплывающее окно с событием click, а затем выполните перенаправление на новой странице.

+0

Да. Тег A с target = "_ blank" будет работать даже при очень простом использовании. Или даже лучше, используйте AJAX для частичного обновления страницы. +1 –

3

Вы не можете сделать это, используя Response.Write. Как только запрос отправляется на сервер, уже определено, где будет открыта запрашиваемая страница. Таким образом, при запуске кода сервера уже слишком поздно менять, где будет открыта страница.

Если вы хотите, чтобы открыть страницу в новом окне, это необходимо сделать перед отправкой запроса на сервер. Вместо того, чтобы делать обратную передачу, вы должны отправить запрос с _blank в качестве цели. Вы можете использовать ссылку для этого:

<a href="Page.aspx" target="_blank">...</a> 

Вы можете использовать метод window.open в Javascript:

window.open('Page.aspx', '_blank'); 
+0

Я пробовал это, но мне нужно запустить код C# на стороне сервера, а затем открыть новое окно. –

+0

@FaheemShehzad: Ну, это действительно бессмысленно, но вы можете использовать скрипт ScriptManager.RegisterStartupScript для добавления скрипта, window.open' после обратной передачи. – Guffa

Смежные вопросы