我正在尝试使图像闪烁,这是我在sharepoint上的Web部分的一部分。
<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);
}
每当我尝试加载带有图像的页面时,我得到)预期的错误。我的语法有问题吗?请让我知道...
答案 0 :(得分:1)
使用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();");
}
答案 1 :(得分:0)
您不能使用OnLoad
的{{1}}属性来执行JavaScript,因为它用于为控件的<asp:ImageButton />
事件设置服务器端事件处理程序。这是一个解决方法:
在服务器端Load
处理程序中:
Page_Load
答案 2 :(得分:0)
检查出来
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将不同。