通过XHR的Javascript请求

时间:2012-11-02 14:30:42

标签: javascript jquery xmlhttprequest

我试图通过XHR下载一个网页,然后在浏览器中渲染它(使用document.write()),但是当我这样做时,虽然显示了页面,但是jQuery的ready()函数没有执行。如果我直接下载完全相同的页面,它会执行。是否需要做一些事情来使通过XHR传递的页面执行ready()函数?

1 个答案:

答案 0 :(得分:3)

不要使用document.write()替换页面内容,它会以泪流满面。

找到合适的顶级元素并使用.replaceWith()来删除其现有内容并包含从XHR检索到的新内容,例如:

$.get(url, function(html) {
    $(body).replaceWith($(html).find('body'));
});

请注意,这不会替换<head>,也不会执行可能包含在新内容中的任何其他Javascript块。

您也可以使用.load()

$(body).load(url);