我正在尝试使图像闪烁,这是我在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);
}每当我试图用图片加载页面时,我得到)预期的错误。我的语法有问题吗?请让我知道。
发布于 2011-12-08 03:50:07
使用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();");
}发布于 2011-12-08 04:28:50
不能使用<asp:ImageButton />的OnLoad属性执行JavaScript,因为它用于为控件的Load事件设置服务器端事件处理程序。以下是一种解决方法:
在您的服务器端Page_Load处理程序中:
imgbtn1.Attributes["onload"] = "blink()";发布于 2011-12-08 04:43:47
看看这个
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也将不同。
https://stackoverflow.com/questions/8421537
复制相似问题