IE7 Ajax加载图像问题 - CSS属性显示不工作
我试图有条件地显示图像 - 但它不工作只在IE浏览器。在Firefox中,它工作正常。任何其他选项来实现相同?谢谢。IE7 Ajax加载图像问题 - CSS属性显示不工作
<span id="goog" style="display:none;" >
<img height="14" width="14" src="static/images/ajax_load.gif" />
</span>
if(document.getElementById("goog")){
alert('goog');
document.getElementById("goog").style.display="none";
}
if(document.getElementById("goog")){
alert('goog');
document.getElementById("goog").style.display="inline";
}
更新:03/07
我一直在试图解决这个IE浏览器,但我不能这样做呢。
问题:我使用的是从dtree定制的JavaScript树组件,并填充树中点击的每个节点的数据或子节点,我正在使用Ajax。每次,如果正在处理某些内容,我希望显示ajax图像(gif)以及“处理”文本。我试过的所有东西都可以在Firefox中使用,但在IE中无法使每个节点是在HTML文档中div标签和是如下:
<div class="dTreeNode">
<a href="javascript: d.o(1);">
<img id="jd1" alt="" src="static/images/minusbottom.gif"/>
</a>
0
<input id="ch1" type="checkbox" onclick="javascript: changeCheckBoxValues(1);"/>
<a id="linkNode1" class="node" onclick="javascript: d.o(1); return false" href="#">AIG</a>
<span id="aj1" style="display: none;">
<img height="14" width="14" src="static/images/ajax_load.gif"/>
</span>
当Ajax请求被触发,静态和先前未显示的(显示:无)被显示出来,如下面
<table align="center" width="80%" border="1" cellspacing="0" cellpadding="0" id="proc"
style="display:none;border-collapse: collapse; border: 1px solid; border-color: #D8D8D8;">
<tr>
<td width="33%"></td>
<td class="buttonBar" width="33%">
<span class="TextBlackNormal"> processing </span>
</td>
<td width="33%"></td>
</tr>
</table>
这两个定位标记都会触发Ajax请求,但显示(GIF图像和处理文本)不能在IE中使用。
我曾试过如下:
1)互换在DIV的锚标签的href &的onclick值DOM的 2)可见性值试图代替显示 3)创建动态DOM元素并加入其中示出的AJAX加载图像+处理文本
我已经想出它不是Ajax调用引起该问题,在图像+文本 4)在容器的innerHTML的(DIV /表)至少我是这么认为的。
当我在IE中用条件显示图像+文本(使用display/visibility在IE中)时,使用某个DOM值(文本框的值)进行实验时,它的工作方式就像魅力一样。
我真的不知道是什么原因造成的问题。
感谢任何帮助。
document.getElementById
在IE中实际上可能会返回元素与name="goog"
。此外,如果您在页面上具有多个此类ID的元素,则这是不正确的,不同的浏览器在这种情况下可能会有不同的表现。在IE中执行这样的检查:
alert(document.getElementById("goog").id);
alert(document.getElementById("goog").tagName);
我觉得这个问题有点难以理解。但这里最大的问题就是你使用的IE版本。 IE的老版本在隐藏/显示元素时会出现一些渲染问题。用position: relative
和zoom: 1
纠正那个小提琴。
但脚本应该可以工作,但是您的AJAX调用中可能会出错,从而导致您无法调用成功函数。尝试添加一个错误事件,看看是否被触发。我不太清楚你从服务器接收到什么,但是IE有时会在被阻塞的元素上失败。
但是在jsfiddle中的展示会很好。
从下面引用的文字,
问题:我正在使用从DTREE定制的JavaScript树组件并填充树点击的每一个节点,我使用了Ajax的数据或子女。每次,如果正在处理某些内容,我希望显示ajax图像(gif)以及“处理”文本。我试过的所有东西都可以在Firefox中使用,但在IE中无法使每个节点都是HTML文档中的div标签,如下所示:
我认为您希望显示处理文本,直到原始数据被ajax调用获取为止。
如果是的话那么在哪里只需使用图像通过检查AJAX状态显示,
有每一行的一个div(可能是旁边的锚文本水平),其中u要显示的处理文本。
Ajax的回调函数,
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
else
{
document.getElementById("goog").innerHTML ='<img src=static/images/ajax_load.gif>';
}
}
我认为这是足以让ú?如果我误解了你的问题,我很抱歉。
谢谢 - 从来没有这样想过,我会尝试。虽然我不是很有希望。 – gekrish 2011-03-15 18:48:27
我正在使用IE7。 – gekrish 2011-03-14 05:09:59
ok,然后''position:relative'在元素上加上'display:none'可能会起作用。 – Tokimon 2011-03-16 14:03:16