Невозможно заставить изображение мигать, получая) ожидаемая ошибка - PullRequest
0 голосов
/ 07 декабря 2011

Я пытаюсь заставить изображение мигать, которое является частью моей веб-части на sharepoint.

<asp:ImageButton ID="imgbtn1" onclick="imgbtn1_Click" ImageUrl="~/xxxxx.gif" runat="server" onload="Javascript:return blink();" />

function blink() {
    var e = document.getElementById("imgbtn1");
    e.style.visibility = (e.style.visibility == 'visible') ? 'hidden' : 'visible';
    setTimeout("blink();", 500);
}

Всякий раз, когда я пытаюсь загрузить страницу с изображением, я получаю ожидаемую ошибку. Что-то не так с моим синтаксисом? пожалуйста, дайте мне знать ...

Ответы [ 3 ]

1 голос
/ 07 декабря 2011

Используйте OnClientClick вместо OnClick.OnClick для серверной части:

Я думаю, что это должно работать:

<asp:ImageButton ID="imgbtn1" OnClientClick="blink(); return false;" ImageUrl="~/xxxxx.gif" runat="server" />

function blink() {
    var e = document.getElementById("<%=imgbtn1.ClientID%>");
    e.style.visibility = (e.style.visibility == 'visible') ? 'hidden' : 'visible';
    setTimeout("blink();", 500);
}

Обратите внимание, как я изменил часть, где вы получаете ссылку на imgBtn.Вам нужно использовать <%=imgBtn.ClientID%>

РЕДАКТИРОВАТЬ

Очевидно, я неправильно понял цель вашего OnClick

Это должно сделать это тогда:

<asp:ImageButton ID="imgbtn1" OnClick="imgbtn1_Click" ImageUrl="~/xxxxx.gif" runat="server"/>

window.onload=blink;
function blink() {
    var e = document.getElementById("<%=imgbtn1.ClientID%>");
    e.style.visibility = (e.style.visibility == 'visible') ? 'hidden' : 'visible';
    setTimeout("blink();", 500);
}

Если вы думаете, что делать window.onload=blink - большое дело, сделайте это на Page_Load:

Page_Load()
{
   imgBtn.Attributes.Add("onload","blink();");
}
0 голосов
/ 08 декабря 2011

Проверьте это

http://msdn.microsoft.com/en-us/library/asz8zsxy.aspx

http://forums.asp.net/t/1038225.aspx/1

http://msdn.microsoft.com/en-us/library/aa479011.aspx

http://msdn.microsoft.com/en-us/library/system.web.ui.control.clientid.aspx

всегда используйте

    "<%=id.ClientID%>" 

при использовании getelementbyid в JavaScript, если вы комбинируете asp и JavaScript, поскольку asp изменит идентификатор во время выполнения, поэтому идентификатор элемента сервера будет другим, а ожидаемый идентификатор клиентаотличается.

0 голосов
/ 08 декабря 2011

Нельзя использовать атрибут OnLoad <asp:ImageButton /> для выполнения JavaScript, поскольку он используется для установки обработчика событий на стороне сервера для события Load элемента управления. Вот обходной путь:

В вашем сервере Page_Load обработчик:

imgbtn1.Attributes["onload"] = "blink()";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...