Javascript var imgLoader=document.getElementById(“imgLoader”);总是空的
我在ASP.net中创建了一个包含图片的简单数据列表。 当我点击一个图像时,我想在一个像弹出窗口一样的小窗口中显示它。 我添加了一个加载器图像以在所选图像之前显示它。 您可以在下面看到弹出窗口的asp.net代码:Javascript var imgLoader=document.getElementById(“imgLoader”);总是空的,javascript,asp.net,Javascript,Asp.net,我在ASP.net中创建了一个包含图片的简单数据列表。 当我点击一个图像时,我想在一个像弹出窗口一样的小窗口中显示它。 我添加了一个加载器图像以在所选图像之前显示它。 您可以在下面看到弹出窗口的asp.net代码: <div id="divImage" > <table style="height: 100%; width: 100%"> <tr> <td valign="middle" align="center" colspa
<div id="divImage" >
<table style="height: 100%; width: 100%">
<tr>
<td valign="middle" align="center" colspan = "3" style ="height:500px;">
<img id="imgLoader" runat="server" alt=""
src="~/Images/loader.gif" />
<img id="imgFull" alt="" src=""
style="display: none;
height: 500px;width: 600px" />
</td>
你知道我为什么得到空结果吗
LoadDiv函数:
function LoadDiv(url, lnk) {
var img = new Image();
var bcgDiv = document.getElementById("divBackground");
var imgDiv = document.getElementById("divImage");
var imgFull = document.getElementById("imgFull");
var imgLoader = document.getElementById("imgLoader");
var dl = document.getElementById("<%=DataList1.ClientID%>");
var imgs = dl.getElementsByTagName("img");
CurrentPage = GetImageIndex(lnk.parentNode) + 1;
imgLoader.style.display = "block";
img.onload = function () {
imgFull.src = img.src;
imgFull.style.display = "block";
imgLoader.style.display = "none";
};
img.src = url;
Prepare_Pager(imgs.length);
var width = document.body.clientWidth;
if (document.body.clientHeight > document.body.scrollHeight) {
bcgDiv.style.height = document.body.clientHeight + "px";
}
else {
bcgDiv.style.height = document.body.scrollHeight + "px";
}
imgDiv.style.left = (width - 650) / 2 + "px";
imgDiv.style.top = "20px";
bcgDiv.style.width = "100%";
bcgDiv.style.display = "block";
imgDiv.style.display = "block";
return false;
}
函数LoadDiv(url,lnk){
var img=新图像();
var bcgDiv=document.getElementById(“divBackground”);
var imgDiv=document.getElementById(“divImage”);
var imgFull=document.getElementById(“imgFull”);
var imgLoader=document.getElementById(“imgLoader”);
var dl=document.getElementById(“”);
var imgs=dl.getElementsByTagName(“img”);
CurrentPage=GetImageIndex(lnk.parentNode)+1;
imgLoader.style.display=“block”;
img.onload=函数(){
imgFull.src=img.src;
imgFull.style.display=“块”;
imgLoader.style.display=“无”;
};
img.src=url;
准备寻呼机(imgs.长度);
var width=document.body.clientWidth;
if(document.body.clientHeight>document.body.scrollHeight){
bcgDiv.style.height=document.body.clientHeight+“px”;
}
否则{
bcgDiv.style.height=document.body.scrollHeight+“px”;
}
imgDiv.style.left=(宽度-650)/2+“px”;
imgDiv.style.top=“20px”;
bcgDiv.style.width=“100%”;
bcgDiv.style.display=“块”;
imgDiv.style.display=“块”;
返回false;
}
因为
标记为runat=“server”
,这意味着id
将在Asp.net内部用于引用此组件,而实际的元素id(在客户端)将有所不同
请尝试以下方法:
var imgLoader = document.getElementById("<%=imgLoader.ClientID%>");
var-imgLoader=document.getElementById(“”);
或者,如果您在服务器端使用此组件执行任何操作,只需省略
runat=“server”
你什么时候运行脚本?你确定img在访问它之前就已经存在了吗?这是LoadDiv函数。请将LoadDiv函数发布到。这是代码的格式问题-看看你的代码是如何分为几行的。这会愚弄解析器吗?试着把所有的标签放在一行,不要断线。我试着把所有的标签放在一行,但我总是有同样的错误。
var imgLoader = document.getElementById("<%=imgLoader.ClientID%>");