Как добавить элемент HTML, который не анализируется до позже? - PullRequest
1 голос
/ 01 декабря 2010

Я делаю веб-страницу и хочу показать предварительный загрузчик перед загрузкой остальной части. Я хочу, чтобы браузер анализировал только мой первый тег <head>, а остальные игнорировали. Это было бы идеально:

<head>  
  <script src='preloader.js'></script>  
  <script src='more1.js' ignore='true'></script>  
  <script src='more2.js' ignore='true'></script>  
  <script src='more3.js' ignore='true'></script>  
</head>

Это заставило меня задуматься о том, как возможно иметь на своей странице существующие скрытые теги HTML, которые я отмечаю позже с помощью JavaScript, чтобы активировать их, например, раскомментировать их. Я думал, что закомментированный код будет ответом, но я не смог прочитать мои комментарии HTML из DOM jQuery.

Как мне создать скрытый HTML, который я активирую позже?

Я не ищу:
- Иметь действительный HTML.
- Внедрить HTML-содержимое, находящееся вне его собственного файла (изменение содержимого, например, атрибута будет в порядке).
- Показать все, что уже было проанализировано.

Ответы [ 3 ]

2 голосов
/ 01 декабря 2010

Вам нужно немного уточнить: хотите ли вы, чтобы HTML не анализировался или не отображался?

Если вы не хотите, чтобы он анализировался, вставьте его в строку JavaScriptв элементе сценария:

<script type="text/javascript">
/* <![CDATA[ */

var yourHTML = '<div id="whatever">...</div>';

/* ]]> */
</script>

Если вы не хотите, чтобы он отображался, установите display:none в стилях inline (это предотвратит любые проблемы, которые могут возникнуть с css):

<div id="whatever" style="display: none;">...</div>

В любом случае вы можете получить доступ к узлу позже с помощью jQuery, используя $(yourHTML) и $('#whatever') соответственно.

0 голосов
/ 02 декабря 2010

Прежде всего, я не думаю, что вы делаете это правильно, если вам нужен предварительный загрузчик для вашей веб-страницы.Но опять же, я не знаю всего контекста, и могут быть случаи, когда предварительный загрузчик может быть оправдан.

Вы пытались просто установить display в none, а затем показать код, когда страница готова?Например,

<div class="preloader">...</div>
<div class="main" style="display: none">...</div>

<script type="text/javascript">
    $(document).ready(function() {
        $(".main").show();
    });
</script>

Если вы хотите, чтобы эта работа выполнялась правильно, вам, вероятно, также необходимо очистить буфер вывода веб-сервера после отправки preloader-div.В PHP это будет выглядеть так:

<div class="preloader">...</div>
<?php
    flush();
?>
...
0 голосов
/ 01 декабря 2010

Одним из вариантов будет добавление контента в dom с использованием javascript.

Поскольку вы используете jquery, вы можете сделать:

var aThingToAddLater = $('<div class="myNewDiv">div content</div>');

$("body").append(aThingToAddLater); // <-- this will add it to the dom, specifically as the last element of the body

Таким образом, фактический 'unparsed-until-позже 'содержимое будет код JavaScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...