IE不呈现div内容

时间:2010-03-29 03:38:40

标签: internet-explorer html5

我使用HTML 5编写了一个应用程序,当有人从IE访问时,我不想显示错误框而不是页面。当它将navigator.appName检测为Microsoft Internet Explorer时,它会隐藏所有内容,并显示隐藏的错误div。 div如下:

<div id='ieerror' style='display:none;width:500px;height:500px;border:3px solid #ff0000;position:absolute;top:50%;left:50%;margin-top:-250px;margin-left:-250px;'>
    <center>
        <h1 style='font-size: 30px;'>Internet Explorer is not supported by Aud!</h1><br /><br />
        <p>Internet Explorer does not support HTML 5 and therefore this application cannot run.<br />
        Please upgrade your browser. We suggest <a href='http://www.google.com/chrome'>Google Chrome</a>!</p>
    </center>
</div>

问题是,当我在IE中访问该页面时,div会弹出边框,但它没有内容。里面没有任何东西。我去了view->source并查看了它,代码仍在那里,但没有一个被渲染。我该如何解决这个问题?

5 个答案:

答案 0 :(得分:3)

如果没有看到页面的整个HTML,很难确切地知道出现了什么问题(如果页面可以通过互联网访问,你应该发布一个URL!),但这就是我如何处理问题:

  1. 首先,我会对页面进行测试,因为跟踪此页面可能会涉及大量的HTML更改。
  2. 接下来,我将删除display:none并注释掉所有针对div的脚本,只是为了好玩,我还会更改div的ID以确保没有脚本触及它。如果div的内容突然出现,那么问题可能在你的脚本中,而不是你的风格。
  3. 接下来,我将删除所有样式(在div及其子节点上),以查看问题是在样式中还是在它们之外。
  4. 如果div的内容显示已删除所有样式,则开始逐个添加样式,直到它再次中断。这不会解决问题,但至少会指出你的罪魁祸首。
  5. 如果div的内容仍未显示所有样式已删除,请尝试删除页面上的其他样式。例如,注释掉包含的CSS文件。这将防止明显的问题,例如,在包含的样式表中将center元素定义为白色背景下的纯文本。或者不太明显的问题,如继承溢出或自动换行样式,导致包含的内容被剪切或隐藏。
  6. 如果这也不起作用,那么问题可能是由该div的父元素引起的。由于它位于绝对位置,因此将它放在DOM中的位置并不重要,因此请尝试将div作为body元素的直接子项。这将消除任何育儿问题。
  7. 如果这些都不起作用,请尝试评论我们或从您的网页中删除越来越多,直到它开始工作。既然你知道简单地将HTML单独放在一个页面中就行了,你知道如果你在某个时刻削减你的页面,它就会开始工作。
  8. 无论如何,你得到了基本的想法:继续删除和简化事情,直到它开始工作,从最容易改变的事情开始,然后继续进行大手术。在某些时候,你将孤立问题,从那里,通常很快找到一个修复。

答案 1 :(得分:1)

IE可能会级联“display:none;”通过该父级的子元素。尝试修改JavaScript以修改这些元素的显示属性。

答案 2 :(得分:0)

你的风格说显示:无?如果删除所有样式代码并返回IE,那么你会看到任何文本吗?

答案 3 :(得分:0)

我在IE中尝试了这个代码,它可以按照您的预期工作,但只有在我想起之后

div.style.display = "block";
div之后

。当我错误地把它放在前面时,它引发了一个(无声的)错误。

答案 4 :(得分:0)

您可以尝试使用Internet Explorer Developer Toolbar查看是否有任何样式应用于您不想要的DIV。