jQuery从外部HTML加载正文

时间:2011-03-11 09:46:43

标签: jquery html load

我正在使用jQuery并尝试从外部HTML文件加载正文。

如果我尝试加载一些div

,它会有效

$('body').load('example.html #content');

但我无法做到这样的事情:

$('body').load('example.html body');

5 个答案:

答案 0 :(得分:9)

来自http://api.jquery.com/load

  

jQuery使用浏览器的.innerHTML   用于解析检索到的属性   记录并将其插入   目前的文件。在此过程中,   浏览器经常过滤元素   < html>,< title>等文档,   或者< head>元素。结果,   由.load()检索的元素可能不会   与文件完全相同   由...直接检索   浏览器。

阅读上述内容,您的浏览器似乎只能返回正文innerHTML。这显然应该与请求body相同,但可能导致错误,因为找不到body

我建议尝试使用其他浏览器。

答案 1 :(得分:3)

如果你想加载整个身体,$('body').load('example.html');就足够了。

如果没有,你能解释一下原因吗?

无论如何,史蒂夫提供的解决方案是正确的。

答案 2 :(得分:2)

我猜你需要的是添加一个iframe。将URL传递给其src属性。那么你的整个html将被加载到这个iframe中。为您的问题提供简洁明了的解决方案。一切顺利: - )

答案 3 :(得分:2)

当您使用不带选择器的加载时,它会删除<html><head><body>标记,但会留下<head>和{{1}的所有子项完整的,包括标题,脚本和样式标记。但是,当您使用选择器时,它会被应用after the body tag is stripped,因此无法与其匹配。

相反,将所有正文内容包装在另一个标记内,然后选择该标记:

<body>

现在,您可以像这样加载它:

<html><head><title>Hello!</title</head>
<body>
  <div id="jquery-load-point">
    ... <!-- rest of body content -->
  </div>
</body>
</html>

答案 4 :(得分:1)

确保使用的是jQuery 1.5.1而不是1.5。 1.5中的加载功能存在问题。我在jquery .load() doesn't work

回答了类似的问题

另一件事是在不同的浏览器中尝试它以确保它不是浏览器问题。 Chrome不允许您在使用localhost工作时使用加载而不进行一些调整。