Javascript var imgLoader=document.getElementById(“imgLoader”);总是空的

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

我在ASP.net中创建了一个包含图片的简单数据列表。 当我点击一个图像时,我想在一个像弹出窗口一样的小窗口中显示它。 我添加了一个加载器图像以在所选图像之前显示它。 您可以在下面看到弹出窗口的asp.net代码:

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