使用 jQuery 将 HTML 页面动态加载到 div 中

2024-07-01

我试图做到这一点,以便当我单击 HTML 页面中的链接时,它会使用 jQuery 将请求的页面动态加载到 div 中。

我怎样才能做到这一点?

<html>
<head>
<script type="text/javascript">
    // what can I do for load any url clicked?
</script>
</head>
<body>
<div id="content"></div>

<a href="page1.html">Page 1</a><br />
<a href="page2.html">Page 2</a><br />
<a href="page3.html">Page 3</a><br />
<a href="page4.html">Page 4</a><br />
<a href="page5.html">Page 5</a><br />
<a href="page6.html">Page 6</a><br />
</body>
</html> 

有一个 jQuery 插件叫做pjax https://github.com/defunkt/jquery-pjax它指出:“它是具有真正的永久链接、页面标题和完全降级的工作后退按钮的 ajax。”

该插件使用 HTML5 PushState 和 AJAX 动态更改页面而无需完全加载。如果不支持pushState,PJAX 会执行整页加载,以确保向后兼容性。

pjax 的作用是监听指定的页面元素,例如<a>。然后当<a href=""></a>调用元素时,可以使用以下任一方式获取目标页面X-PJAX标头或指定的片段。

Example:

<script type="text/javascript">
  $(document).pjax('a', '#pjax-container');
</script>

将此代码放入页面标题中将侦听文档中的所有链接,并设置从新页面获取并在当前页面上替换的元素。

(意味着你想替换#pjax-container在当前页面上#pjax-container从远程页面)

When <a>被调用时,它将获取带有请求标头的链接X-PJAX并将查找以下内容#pjax-container在结果中。如果结果是#pjax-container,当前页面上的容器将被新结果替换。

<!DOCTYPE html>
<html>
<head>
  <script type="text/javascript" src="jquery.min.js"></script>
  <script type="text/javascript" src="jquery.pjax.js"></script> 
  <script type="text/javascript">
    $(document).pjax('a', '#pjax-container');
  </script> 
</head>
<body>
  <h1>My Site</h1>
  <div class="container" id="pjax-container">
    Go to <a href="/page2">next page</a>.
  </div>
</body>
</html>

If #pjax-container不是响应中找到的第一个元素,PJAX 将无法识别该内容并对请求的链接执行完整页面加载。要解决此问题,需要将服务器后端代码设置为仅发送#pjax-container.

服务器端代码示例page2:

//if header X-PJAX == true in request headers, send
<div class="container" id="pjax-container">
  Go to <a href="/page1">next page</a>.
</div>
//else send full page

如果您无法更改服务器端代码,则片段选项是一种替代选择。

$(document).pjax('a', '#pjax-container', { 
  fragment: '#pjax-container' 
});

注意fragment是一个较旧的 pjax 选项,似乎会获取所请求元素的子元素。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 jQuery 将 HTML 页面动态加载到 div 中 的相关文章

  • Swift - 将 HTML 文本转换为属性字符串

    在我的一个模块中 我想使用 UILabel 将多语言 HTML 文本 英语和泰米尔语 显示为 NSAttributedString 如果文本是纯英文 我可以按照我的愿望显示它 但我的内容同时包含英语和泰米尔语字符 我该如何处理这种情况 如果
  • 全选/取消全选页面中的复选框

    我看过this http railsforum com viewtopic php id 2151这似乎对我的代码没有影响 我试过了this https stackoverflow com questions 888173 select a
  • MomentJS:如何将 MM/DD/YYYY 中的日期解析为 DD/MM/YYYY

    如何在澳大利亚和美国时间格式中使用 moment js 例如 07 08 2017 对于两种时间格式都有好处 但是 30 08 2017 对于 moment js 无效 但我可以有这样的 dateTime 您可以在这里检查 http jsf
  • Javascript:单击正文中除其中一个元素之外的任何位置

    我希望能够单击正文中除该特定元素之外的任何位置 我无法找出我所做的代码有什么问题 当我单击一个特定元素时 except inside body 我不想让它隐藏 但是当我点击body它应该隐藏 HTML
  • 删除 IE 10 兼容性视图中的蓝色边框

    如何删除或不显示每个带有图像的锚点中的边框链接 顺便说一下 浏览器设置是兼容模式 其他问题的答案不足以解决我的问题 我猜是因为它只适用于较低版本的 IE EDIT 我目前正在客户需要的地方创建自定义共享按钮 div a href img h
  • 表格单元格中文本的垂直对齐方式

    这是我的表格的一部分 它是一个表格 这只是两个 td s in a tr 我想得到描述向上 到表格单元格的顶部 而不是停留在底部 我怎样才能做到这一点 td description vertical align top where desc
  • 将框架外页面重定向到index.htm中的特定框架

    我在 index html 文件上使用框架 在框架的每个页面上 我都有一个代码来检查页面是否在框架中 如果没有 则重定向到index html 现在 我不仅想检查页面是否在框架中并重定向到index html 而且还想在index html
  • 使用javascript在没有提交按钮的情况下将输入值显示到另一个页面

    我正在尝试将输入值的结果显示到另一个页面 但这个输入没有提交按钮 因此 我正在使用keyup来存储输入数据 我有2页 index1 php and index2 php 索引1 php
  • AngularJS ui-router:如何全局解析所有路由的典型数据?

    我有一个 AngularJS 服务 它与服务器通信并返回 申请表不同部分的翻译 angular module utils service Translations q http function q http translationsSer
  • Javascript“悬停时”循环

    任何人都可以帮助我解决这个问题 我有一个按钮 当悬停时会触发一个操作 但我希望只要按钮悬停就重复它 我很感激任何解决方案 无论是在 jquery 还是纯 javascript 中 这是我的代码此时的样子 在 jquery 中 var scr
  • Jquery ui 与 Jeditable

    我正在尝试这段代码
  • Rails 通过 ajax 发出闪光通知

    长话短说 我有一个按钮 单击它时 我希望触发一个 ajax 请求 该请求获取 flash notice 并将其显示在 中的 div 中 这是我的简短观点
  • 如何将网页从一个域重定向到另一个域?

    当第一个域 网页 加载时 如何将域重定向到另一个域 纯 HTML 替代方案如下HTML 中的标签 The 0这里是页面在重定向之前必须保持打开状态的秒数 在这种情况下 一旦您加载页面 它就会立即发生 与建议的 JS 解决方案相反 这在禁用
  • 从 Firefox 扩展打开当前选项卡/窗口中的 URL

    我正在创建一个 Firefox 扩展 从菜单项打开当前选项卡中的 URL 的 javascript 是什么 例如在我的overlay xul 文件中 我有以下行
  • 图像马赛克 HTML/CSS

    我想做一个图像布局肖像图像里面一个div固定长宽比为3 2 图像的大小是327x491px 主要问题是图像之间不需要的空间 我如何将图像对齐为马赛克仅使用HTML CSS HTML div class pictures1 grid div
  • XPath 错误:[contains(text()="something")]' 不是有效的 XPath 表达式

    在观看了关于 XPath 的非常基本的教程之后 我第一次使用 selenium 构建一个应用程序 该应用程序包含卡的奖金计算器 我写了这段代码 from selenium webdriver import Chrome from webdr
  • 通过 http 在两个 Node.js 服务器之间传输文件

    我有两个通过 http 相互通信的 node js express 服务器 server A它还与浏览器通信并可以处理文件上传请求 当文件上传到server A我想将其原样转移到server B以便进一步加工 最好的方法是什么 最好与请求
  • Spring Security 登录页面

    我开发了一个使用 Spring Security 的默认登录页面的应用程序 不过我想实现我自己的登录页面 我将放置一个login html 而不是jsp 页面 我想使用 JQuery 来实现它 我检查了很多例子但无法实现 我是 Spring
  • 克隆元件查找器

    在研究可用的同时ElementFinder and ElementArrayFinder方法 我注意到有一个clone method http angular github io protractor api view ElementFin
  • 通过 javascript 选择/取消选择所有复选框单击单个复选框

    I have a form in which I have two table with some rows 我希望当我点击时选择 取消选择全部复选框 而不是针对该特定表应选中该复选框下方的复选框 我有一个可以工作的 JavaScript

随机推荐