Использование document.write()
после завершения загрузки страницы неявно вызывает document.open()
, что создает новую страницу. Как правило, вам следует избегать document.write()
и придерживаться правильных методов создания DOM или использовать сокращенные методы создания jQuery:
jQuery(function($) {
$('<style type="text/css"> .preload img { display: none; } </style>')
.appendTo("head");
$('#body-wrap').preloadThis();
});
<ч />
Я предполагаю, что вы не можете редактировать файлы HTML или CSS, которые загружаются страницей, чтобы включить это правило? Если это так, и вы хотите, чтобы эти стили применялись до завершения загрузки страницы, извлеките document.write()
из обработчика готовности jQuery:
// write() before the document finishes loading
document.write('<style type="text/css"> .preload img { display: none; } </style>');
jQuery(function($) {
$('#body-wrap').preloadThis();
});
Это позволит написать тег <style>
сразу после выполняемого в данный момент тега <script>
. Надеемся, что это в вашем элементе <head>
, так как <style>
недопустим где-либо еще, хотя все браузеры должны анализировать его в любом случае.