将整个页面放入容器中并隐藏/显示它而不重新加载

时间:2014-11-28 15:36:20

标签: javascript jquery dom-manipulation

我想将完整页面加载到DOM和 将它们放在自己的“容器”中以便显示和隐藏。

到目前为止,我尝试过:
1)将页面加载到div中,但有些东西如背景图像和css正在获取 走出“容器”,即使它隐藏在这样:

    $("#page" + index).hide().load(url);


2)如果我将它加载到:

    $("#page" + index).html('<object data="' + url + '">');

它将页面保留在容器内,但是当我使用jQuery show / hide时,它每次都会重新加载。


我没有尝试过iframe,但是使用framebreakers,我猜有些页面会接管屏幕。

你知道怎么做吗?

2 个答案:

答案 0 :(得分:0)

您加载的网址是否包含一组额外的html,head或body标记? Html文档应该只包含一组。

答案 1 :(得分:0)

您可能不希望将整个文档(包含所有标题/正文信息等)加载到另一个文档的元素中;这将很难与之合作。

你可以使用带有过滤器的jQuery.load来加载某个类的元素,即在你真正想要引入的内容周围放一个大的div,然后用它来过滤到jquery加载。

  

加载页面片段

     

与$ .get()不同,.load()方法允许我们指定一部分   要插入的远程文档。这是通过特殊的方式实现的   url参数的语法。如果有一个或多个空格字符   包含在字符串中,第一个字符串后面的字符串部分   假设space是一个确定内容的jQuery选择器   要加载。

     

我们可以修改上面的示例以仅使用部分文档   获取的内容:

     

$(“#result”)。load(“ajax / test.html #container”);当这种方法   执行,它检索ajax / test.html的内容,然后检索jQuery   解析返回的文档以查找ID为的元素   容器。这个元素及其内容被插入到   具有结果ID的元素,以及检索到的文档的其余部分   被丢弃了。

     

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

从这里开始:

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