Hide Body until Content is Loaded — Works on IE, but not Safari?
-
10-02-2021 - |
Pregunta
Here's a weird one -- something that works great in IE, but not in Safari. Here's my code:
<script type="text/javascript">
$(document).ready(function(){
$('body').css('display', 'block');
});</script>
</head>
<body style="margin:0; display:none;">
The goal is to set the body display to none until the document is ready. Then change the display property to block.
Any idea what I'm doing wrong here?
Solución
You should use jQuery's .load() if you want the page to really be ready (images loaded too) before displaying it. On the other hand, you shouldn't hide the body at all with css, as people with javascript turned off will assume the site just crashed. Unless of course you're creating a 100% javascript dependent application.
Otros consejos
CAN I ADD some sort of conditional code, such that if javascript is not enabled it loads immediately, but if it is enabled it waits to display until the document is ready?
Yes, you can:
<script type="text/javascript">
$(function(){
$('body').css('display', 'block');
});
</script>
</head>
<body>
<script type="text/javascript">
$('body').css('display','none'); // this will execute before $(document).ready()
</script>