隐藏span(或div)直到javascript完成

时间:2010-07-05 17:14:02

标签: javascript

我正在使用单位PNG修复(http://labs.unitinteractive.com/unitpngfix.php)在IE中使透明的png工作。它被用在我的徽标容器的背景图像上。

所以我有我的html,其中包含这些相关项目。在头脑中:

<!--[if lt IE 7]>
        <script src="/assets/script_unitpngfix.js" type="text/javascript"></script>
<![endif]-->

然后在身体里:

<a href="index.html" style="display:block;"><span id="Logo"></span></a>

因为,在单位PNG修复工作之前,徽标会在其周围加上灰色框,我怎样才能隐藏整个范围,直到执行javascript之后,用户永远不会看到灰框?

谢谢。

4 个答案:

答案 0 :(得分:7)

而不是你当前的跨度,这个:

<span id='Logo'
        style="display:none"></span>

然后将此函数附加到body onload事件(<body onload = "showMySpan()">):

function showMySpan() {
var mySpan = document.getElementById('Logo');
mySpan.style.display = "";
}

答案 1 :(得分:3)

您可以使用jQuery及其ready函数,它专门用于等待加载DOM。

HTML会使用display:none开头:

<span id="Logo" style="display:none;"></span>

然后,添加这样的脚本(假设你也链接到jQuery):

<script>
  $(document).ready(function () {
    $("#Logo").show();
  });
</script>

答案 2 :(得分:2)

默认隐藏span

<span id="Logo" style="display:none;"></span>

然后添加一段JavaScript以便稍后显示:

document.getElementById('Logo').style.display = 'inline';

确保(至少在IE中)在PNG修复之后执行此代码的最佳方法是将其放在单独的JS文件中并将其作为延迟脚本加载到页面末尾:

<script type="text/javascript" src="show_span.js" defer="defer"></script>

有关延迟脚本的更多详细信息:JavaScript: Defer Execution

答案 3 :(得分:0)

我会使用jquery或其他js框架,然后在'document.ready'或类似的东西中使用casablanca的解决方案。

信任浏览器的加载时间/订单永远不会健康。