открыть окно (aspx-страницу) одним щелчком мыши + JavaScript - PullRequest
1 голос
/ 22 октября 2010

Мне нужно открыть новое окно одним щелчком кнопки asp.net. Моя проблема в том, что это всегда занимает два клика .. если я напишу открытое окно код в странице загрузки, то окно открывается на 1 клик .. есть идеи как обойти это ...

Код нажатия кнопки:

btnClaim.Attributes.Add("Onclick","javascript:return OpenPopup()")

Функция Javascript:

 function OpenPopup()
{
window.open("newWindow.aspx?", "_blank", "height=500, width=575, left=150,
top=150, " +
"location=no, menubar=no, resizable=no, " +
"scrollbars=no, titlebar=no, toolbar=no", true);
}  

Ответы [ 2 ]

4 голосов
/ 22 октября 2010

Проблема в том, что вы добавляете код для обработки щелчка в обработчике события щелчка.Это означает, что при первом нажатии кнопки обработчик событий добавляет атрибут к кнопке.После обратной передачи вы можете нажать кнопку еще раз, чтобы открыть всплывающее окно, поскольку кнопка теперь имеет код на стороне клиента.

Либо добавьте атрибут в Page_Load, чтобы кнопка всегда имела атрибут, либо в обработчик событийдобавить код на страницу, которая вызывает функцию сразу после обратной передачи:

ClientScript.RegisterStartupScript(Me.GetType(), "open", "OpenPopup();", True)
2 голосов
/ 22 октября 2010

Эта проблема, вероятно, возникает из-за того, что форма отправляется по клику (PostBack).Если вы вернете false в атрибуте onclick, он должен отменить отправку формы.Вы также можете использовать OnClientClick .

btnClaim.OnClientClick = "javascript:OpenPopup(); return false;";
...