是否有可能在用户浏览器中不显示html页面,直到加载并执行一些JavaScript(内置或单独的文件)(用于页面DOM操作)?
发布于 2010-10-08 17:10:34
最简单的方法是设置css变量
display: none;到整个页面。然后,当加载所有内容时,您可以将显示设置为
display: block; // or something else that suits.如果您确保在文档的最开始加载了CSS,则在显示任何html之前,它将处于活动状态。
如果您使用像jQuery这样的javascript库,您将可以访问$(document).ready()函数,并可以实现如下切换:
<html>
<head>
<title>test</title>
<style type="text/css">
body > div {
display: none;
}
</style>
<script type="text/javascript">
$(document).ready(function() {
$('body > div').css('display', 'block');
});
</head>
<body>
<div>
This will initially be hidden.
</div>
</body>
</html>发布于 2010-10-08 17:08:48
而不是以传统的方式分发页面。浏览器将(通常)在基本HTML文件到达时开始显示它的块。
当然,您可以通过从某些包含的Javascript文件动态生成所有HTML来模拟这一过程。但这听起来不是一个好计划,因为对于没有启用JS的人,或者如果你的脚本中有一个小错误,它将会严重降级。更好的选择可能是将body标记样式化为display: none,然后在脚本中重新设置样式,以使某些部分再次可见。
你真正想要实现的是什么?听起来可能有更好的方法来做这件事...
发布于 2010-10-08 17:21:18
将HTML页面的内容放在DIV中,使其不显示,并在加载正文时显示它。
<script type="text/javascript">
function showContent() {
var divBody=document.getElementById('divBody');
divBody.style.display= 'block';
}
</script>
<body onload="showContent()">
<div id="divBody" style="display: none;">
<--HTML of the page-->
</div>
</body>https://stackoverflow.com/questions/3889108
复制相似问题