我正在创建一个网页,并希望在加载其余部分之前显示预加载器。我只希望浏览器解析我的第一个<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标记它们来激活它们,就像取消注释它们一样。我认为注释代码将是答案,但我无法从jQuery的DOM中读取我的HTML注释。
如何创建稍后激活的潜在HTML?
我不希望:
- 拥有有效的HTML
- 注入驻留在自己文件之外的HTML内容(更改内容,就像属性一样)
- 取消隐藏任何已经解析过的内容。
答案 0 :(得分:2)
您需要澄清一点:您是否希望HTML不被解析或不被显示?
如果您不希望对其进行解析,请将其插入脚本元素中的JavaScript字符串中:
<script type="text/javascript">
/* <![CDATA[ */
var yourHTML = '<div id="whatever">...</div>';
/* ]]> */
</script>
如果您不希望它显示,请在内嵌样式上设置display:none
(这样可以防止css可能出现的任何问题):
<div id="whatever" style="display: none;">...</div>
在任何一种情况下,您都可以稍后使用$(yourHTML)
和$('#whatever')
使用jQuery访问该节点。
答案 1 :(得分:0)
一种选择是使用javascript将内容添加到dom中。
由于你使用的是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
这样,实际的'未解析的直到晚'内容将是javascript代码。
答案 2 :(得分:0)
首先,如果您的网页需要预加载器,我认为您做得不对。但话说回来,我不知道整个上下文,并且可能存在可以证明预加载器合理的情况。
您是否尝试过将display设置为none,然后在页面准备好后显示代码? E.g。
<div class="preloader">...</div>
<div class="main" style="display: none">...</div>
<script type="text/javascript">
$(document).ready(function() {
$(".main").show();
});
</script>
如果您希望这项工作正确,您可能还需要在发送preloader-div后刷新Web服务器的输出缓冲区。在PHP中它看起来像这样:
<div class="preloader">...</div>
<?php
flush();
?>
...