【问题标题】:Get entire page into container and hide/show it without reloading将整个页面放入容器并隐藏/显示它而不重新加载
【发布时间】:2014-11-29 02:16:43
【问题描述】:

我想将整个页面加载到 DOM 中的某个位置,然后 将它们放在自己的“容器”中,以便显示和隐藏。

到目前为止,我尝试过:
1) 将页面加载到 div 中,但背景图像和 css 之类的东西正在增加 即使它像这样隐藏在“容器”之外:

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


2)如果我将它加载到:

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

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


我还没有尝试过 iframe,但我猜想某些页面会占据屏幕。

你知道怎么做吗?

【问题讨论】:

    标签: javascript jquery dom-manipulation


    【解决方案1】:

    您正在加载的 url 是否包含一组额外的 html、head 或 body 标签? Html 文档应该只包含其中的一组。

    【讨论】:

    • 是的,它确实包含自己的html等标签。
    【解决方案2】:

    您可能不想将整个文档(包括所有标题/正文信息等)加载到另一个文档的元素中;这将很难处理。

    您可以使用 jQuery.load 和 a 过滤器来仅加载某个类的元素,即在您实际想要拉入的内容周围放置一个大 div,然后使用它来过滤到 jquery 加载。

    加载页面片段

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

    我们可以修改上面的例子,只使用文档的一部分 已获取:

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

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

    从这里开始:

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

    【讨论】:

      猜你喜欢
      • 2017-01-04
      • 1970-01-01
      • 2013-09-18
      • 2016-04-19
      • 1970-01-01
      • 1970-01-01
      • 2019-11-20
      • 2013-10-28
      • 1970-01-01
      相关资源
      最近更新 更多