jQuery load body from external HTML

泄露秘密 提交于 2019-11-29 05:30:44
Adam Hopkinson

From http://api.jquery.com/load

jQuery uses the browser's .innerHTML property to parse the retrieved document and insert it into the current document. During this process, browsers often filter elements from the document such as <html>, <title>, or <head> elements. As a result, the elements retrieved by .load() may not be exactly the same as if the document were retrieved directly by the browser.

Reading the above, it seems possible that your browser be only returning the body innerHTML. This obviously should be the same as requesting body, but maybe it's causing an error because body is not found?

I'd suggest trying a different browser.

If you want to load the whole body, $('body').load('example.html'); should be enough.

If not, could you explain why ?

Anyway, the solution provided by Steve is the right one.

I guess what you need is to add an iframe. Pass the URL to its src property. Your whole html will get loaded in this iframe then. A clean and simple solution for your problem. All the best :-)

When you use load without a selector, it strips the <html>, <head>, and <body> tags, but leaves all of the children of <head> and <body> intact, including title, script, and style tags. However, when you use a selector, it is applied after the body tag is stripped, so it's impossible to match against it.

Instead, wrap all of your body content inside another tag, and select that tag instead:

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

Now, you can load it like this:

$("#destination").load("http://my.url/to/page #jquery-load-point");
Hussein

Make sure you are using jQuery 1.5.1 and not 1.5. The load feature in 1.5 had issues. I answered a similar questions at jquery .load() doesn't work

Another thing is to try it in different browsers to make sure it's not a browser issue. Chrome doesn't allow you to use load when working from localhost without doing some tweaking.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!