较小<;img>;适用于Firefox v22.0,但不适用于IE v10.0.9


smaller <img> works in Firefox v22.0, but not in IE v10.0.9

我在Firefox版本22中成功地显示了一张照片——在两个不同的img标签中——其中一个img标签没有设置CSS宽度或高度,因此图像显示为原始大小。

第二个img标记由CSS样式设置为60px乘60px。

当我设置这两个img标记的"innerHTML"时,在Firefox中,我看到原始大小的图像和相同的图像缩小到60px乘60px的img标记中。

在IE 10.0.9版本中,我在第二个img税中没有看到任何通过CSS设置为60px乘60px的内容。

它与正在执行的代码完全相同。我需要为IE做些什么来显示我代码中没有的60px乘60px img标记中的图像吗?

顺便说一句,下面的代码是在一个PHP文件中生成的——我使用"隐藏Iframe"方法加载,然后在网页上显示图像——下面的代码在一个PHP文件中生成,然后将您看到的内容输出到我的html页面上的隐藏Iframe,这就是为什么您看到这里的代码获得Iframe的父文档:

<script language="JavaScript" type="text/javascript">
var parDoc = parent.document;
parDoc.getElementById('justOpenedImage').innerHTML = 
   '<div><img src=''http://localhost/thesite/aPhoto.jpg'' /></div>';
parDoc.getElementById('60by60').innerHTML = 
  '<div><img class="60by60Image" src=''http://localhost/thesite/aPhoto.jpg'' /></div>';
</script>

这是CSS类60by60Image:

 .60by60Image
 {
    border: 2px solid green;   
    width: 60px; 
    height: 60px;
    display: inline-block;
 }

这是页面上的html:

     <!-- THE ORIGINAL-SIZED IMAGE APPEARS FINE HERE IN BOTH IE AND FF -->
     <div id="justOpenedImage"></div>

     <!-- THE SMALLER IMAGE APPEARS HERE IN FIREFOX BUT NOT IN IE -->
     <div>
         <img class="60by60Image"  id="60by60" src="" />
     </div>

这在Firefox中运行得很好,但在IE中,它无法显示较小的60乘60版本的图像——不知道为什么。

您设置了图像的innerHTML。执行完脚本后,文档树看起来像这样:

 <div>
     <img class="60by60Image"  id="60by60" src="">
         <div><img class="60by60Image" src='http://localhost/thesite/aPhoto.jpg' /></div>
     </img>
 </div>

我认为IE就是不能"处理"这个问题。至少,它不是有效的HTML。

可以通过将id="60by60"属性添加到父div并将其从img中删除来修复此问题。让javascript更改div的innerHTML,而不是图像。

<div id="60by60">
     <img class="60by60Image" src="">
</div>

或者更改图像的src属性。

parDoc.getElementById('60by60').src = 'http://localhost/thesite/aPhoto.jpg';
相关文章: