无法使图像闪烁(得到)预期的错误

Unable to make an Image blink getting ) expected error

本文关键字:错误 得到 图像 闪烁      更新时间:2023-09-26

我正试图使图像眨眼,这是我的web部件在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);
}

每当我尝试加载页面与图像,我得到)预期的错误。我的语法有问题吗?

OnClientClick代替OnClickOnClick用于服务器端:

我认为这应该可以工作:

<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();");
}

您不能使用<asp:ImageButton />OnLoad属性来执行JavaScript,因为它用于为控件的Load事件设置服务器端事件处理程序。这里有一个解决方法:

在您的服务器端Page_Load处理程序中:

imgbtn1.Attributes["onload"] = "blink()";

看看

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%>" 

当你在JavaScript中使用getelementbyid时,如果你结合了asp和JavaScript,因为asp会在运行时改变id,所以服务器元素id会不同,你期望的客户端id会不同。