Jquery .load()函数没有加载html注释标记

时间:2012-01-29 16:23:15

标签: jquery html

我使用.load()Jquery函数,在另一个html文件中包含html标签。 代码示例:

a.html:

<html> 
<head> 
    <script src="jquery.js"></script> 
    <script> 
        function loadContent() 
        { 
            $("#includedContent").load("b.html"); 
        } 
    </script> 
</head> 
<body> 
   <div id="includedContent"></div> 
   <script>loadContent()</script> 
</body>

b.html:

<!--Include  it-->
<p> This is my include file </p>

当我在浏览器中打开a.html并点击“查看来源”时,我看不到

<!--Include  it-->

为什么? 我需要它来追踪东西。

如果您制作一个简单的html文件:

<html>
<body>
    <!-- Hello -->
    <p>Hello world </p>
</body>
</html>

在浏览器中打开它,单击“查看源”。你可以看到

<!-- Hello -->

为什么当我们使用.load()时我们看不到评论???

3 个答案:

答案 0 :(得分:1)

你正在使用什么浏览器? IE不会更新DOM(在视图源/开发人员工具视图中)以响应ajax请求,如果您使用他们的开发人员工具查看页面,Chrome将会显示

然后加载正在运行,它只是关于你如何查看评论。浏览器如何处理更新“视图源”以响应动态页面事件是特定于浏览器的,如果您依赖其他人操作DOM然后查看页面源以查看更改,则可能需要重新考虑您的策略。

评论应该在div的Html中:

<script> 
        function loadContent() 
        { 
            $("#includedContent").load("b.html", function() { alert($("#includedContent").html() }); 
        } 
    </script> 

您可能需要提出一个显示评论的新方案。也许可以将它们添加到隐藏的div中,并允许adv people(无论他们是谁)点击按钮查看它们。

答案 1 :(得分:1)

尝试使用get()代替load()

根据jQuery documentation

  

jQuery使用浏览器的.innerHTML属性来解析检索到的   记录并将其插入当前文档。在此过程中,   浏览器通常会过滤文档中的元素,例如&lt; html&gt;,   &lt; title&gt;或&lt; head&gt;元素。 因此,检索的元素   .load()可能与检索文档时不完全相同   直接通过浏览器。

答案 2 :(得分:0)

.load()Jquery函数是一个包含* .html文件的好方法。但是对于这个问题它并没有那么有用,因为解决方案需要涉及“查看源”功能才能看到那里的评论。

可以做些什么? SSI(服务器端包含)解决方案,需要由管理员配置。 文件.htaccess需要配置为启用apache来处理* .shtml文件。 有关SSI的信息可以在网上找到。