Скрыть тело, пока содержимое не загружено - работает на IE, но не на Safari? - PullRequest
0 голосов
/ 15 октября 2011

Вот странный вопрос - то, что отлично работает в IE, но не в Safari.Вот мой код:

<script type="text/javascript">
 $(document).ready(function(){
 $('body').css('display', 'block');
 });</script>

</head>
<body style="margin:0; display:none;">

Цель состоит в том, чтобы установить основную часть дисплея, пока документ не будет готов.Затем измените свойство display на block.

Есть идеи, что я здесь не так делаю?

Ответы [ 2 ]

2 голосов
/ 16 октября 2011

Могу ли я добавить какой-то условный код, например, если javascript не включен, он загружается немедленно, но если он включен, он будет отображаться до тех пор, пока документ не будет готов?

Да, вы можете:

<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>
1 голос
/ 15 октября 2011

Вам следует использовать .load () jQuery, если вы хотите, чтобы страница была действительно готова (изображения загружены тоже) перед ее отображением. С другой стороны, вы вообще не должны скрывать тело с помощью css, так как люди с отключенным javascript будут считать, что сайт только что рухнул. Если, конечно, вы не создаете приложение, зависящее от JavaScript, на 100%.

...