如何为使用 AJAX 获取的页面或内容添加“书签”?

2024-01-26

如何为使用 AJAX 获取的页面或内容添加“书签”?

看起来,如果我们只是将详细信息添加到“锚点”,然后使用路由,甚至在 PHP 代码或 Ruby on Rails 的 Route.rb 中,捕获该部分,然后显示内容或页面,这似乎很容易因此? (显示整个页面或部分内容)

那么事情可以很简单吗?看起来 Facebook 就是这么做的。还有哪些其他好的方法可以做到这一点?


更新:现在有 HTML5 History API(pushState、popState),它弃用了 HTML4hashchange功能。历史.js https://github.com/balupton/history.js提供跨浏览器兼容性和optional https://github.com/balupton/history.js/wiki/Intelligent-State-Handling hashchangeHTML4 浏览器的后备。

要存储页面的历史记录,最流行且功能齐全/支持的方式是使用 hashchanges。这意味着说你从yoursite/page.html#page1 to yoursite/page.html#page2您可以跟踪该更改,并且因为我们使用散列,所以可以通过书签以及后退和前进按钮来获取它。

您可以使用 jQuery History 项目找到一种绑定哈希更改的好方法http://www.balupton.com/projects/jquery-history http://www.balupton.com/projects/jquery-history

它还有一个全功能的 AJAX 扩展,允许您轻松地将 Ajax 请求集成到您的状态/哈希中,将您的网站转变为全功能的 Web 2.0 应用程序:http://www.balupton.com/projects/jquery-ajaxy http://www.balupton.com/projects/jquery-ajaxy

他们都在演示页面上提供了很好的文档来解释正在发生的事情和正在发生的事情。

以下是使用 jQuery History 的示例(取自演示站点):

// Bind a handler for ALL hash/state changes
$.History.bind(function(state){
    // Update the current element to indicate which state we are now on
    $current.text('Our current state is: ['+state+']');
    // Update the page"s title with our current state on the end
    document.title = document_title + ' | ' + state;
});

// Bind a handler for state: apricots
$.History.bind('/apricots',function(state){
    // Update Menu
    updateMenu(state);
    // Show apricots tab, hide the other tabs
    $tabs.hide();
    $apricots.stop(true,true).fadeIn(200);
});

以及 jQuery Ajaxy 的示例(取自演示站点):

        'page': {
            selector: '.ajaxy-page',
            matches: /^\/pages\/?/,
            request: function(){
                // Log what is happening
                window.console.debug('$.Ajaxy.configure.Controllers.page.request', [this,arguments]);
                // Adjust Menu
                $menu.children('.active').removeClass('active');
                // Hide Content
                $content.stop(true,true).fadeOut(400);
                // Return true
                return true;
            },
            response: function(){
                // Prepare
                var Ajaxy = $.Ajaxy; var data = this.State.Response.data; var state = this.state;
                // Log what is happening
                window.console.debug('$.Ajaxy.configure.Controllers.page.response', [this,arguments], data, state);
                // Adjust Menu
                $menu.children(':has(a[href*="'+state+'"])').addClass('active').siblings('.active').removeClass('active');
                // Show Content
                var Action = this;
                $content.html(data.content).fadeIn(400,function(){
                    Action.documentReady($content);
                });
                // Return true
                return true;

如果你想获取查询字符串参数(所以yoursite/page.html#page1?a.b=1&a.c=2)你可以只使用:

$.History.bind(function(state){
    var params = state.queryStringToJSON(); // would give you back {a:{b:1,c:2}}
}

因此,请查看这些演示链接以查看它们的实际情况,以及所有安装和使用详细信息。

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

如何为使用 AJAX 获取的页面或内容添加“书签”? 的相关文章

  • PHP 变量无法使用 json_encode() 正确返回成功 AJAX/jQuery POST

    我已经尝试了几个小时才能让它发挥作用 我有一个 div 标签和一个hidden input field我想使用 AJAX 进行更新 这div标签如下 div class friends tab list div div
  • 确定$.ajax错误是否是超时

    我正在利用魔法jQuery ajax settings 不过 我想知道是否有人经常使用超时设置 我知道它基本上是为了规定请求的本地时间 但是如果达到超时 它会触发任何事情吗 或者它只是停止监听响应 阅读 jQuery 站点 我可以看到没有传
  • 如何在ngDialog中加载数据

    我有一个要求 我需要从 jsp 页面打开一个对话框 并且在打开该对话框时 我需要从服务器加载一些预填充的数据 使用 AJAX 调用 如果我在打开对话框之前进行 AJAX 调用 我会获取数据 但对话框会像新页面一样加载 如果我尝试在新控制器中
  • SyntaxError: JSON.parse: JSON 数据第 1 行第 1 列出现意外字符

    我花了 6 个多小时在代码中查找异常或特殊字符 但我找不到 我检查了这里所有类似的消息 我正在发送带有放大弹出窗口的表格 首先 我使用内联弹出窗口打开表单 然后将所有输入发送到 main js 进行验证 所以 我只需要第三只眼 我有 ind
  • PHP ajax使用新数组上传多个文件

    它是我的上传 html 代码 div class col xs 12 div
  • 解决多个 jQuery 文件之间的冲突

    我的项目中有多个 jquery 文件 我正在使用jquery1 4 2使用facebox 但我也需要原型和scriptacolous脚本 我用过 jQuery noconflict 在我的代码中 但它不起作用 这是网址http mlep c
  • XHR 调用是宏任务还是微任务?

    Ajax 调用被安排为微任务还是宏任务 浏览器之间有什么区别吗 在 JavaScript Ninja 的秘密 第二版一书中 作者指出网络事件被安排为宏任务 因此 XHR 回调与宏任务一起排队
  • 让 hashchange 事件在所有浏览器(包括 IE7)中工作

    我有一些代码 由另一位开发人员编写 在 WordPress 内部进行 AJAX 页面加载 例如 没有页面重新加载 当您单击导航项时 AJAX 会刷新主要内容区域 我的问题是它在 IE7 中被破坏了 我不知道从哪里开始调试 最初的开场白是 v
  • Ajax 将文件上传到内容类型为 Multipart 的 GoLang 服务器

    我正在尝试使用多部分表单将音频文件上传到 Golang 服务器 然而 Go 返回错误 multipart NextPart bufio buffer full 我相信这表明我的 Javascript 请求中存在不属于多部分格式的内容 这是我
  • Rails - 使链接与 ajax 一起工作

    我有一个链接 应该使用 ajax 加载它旁边的部分内容 而无需重新加载页面 链接在这里 这是链接应该转到的控制器 class ProfilesController lt ApplicationController def profile f
  • 如何修复 AJAX 在选中复选框时始终触发?

    有时这个 AJAX 会触发 有时不会 让我解释一下 habit js document ready function habit check change function habit this parent siblings habit
  • XMLHttpRequest、jQuery.ajax、jQuery.post、jQuery.get 之间有什么区别

    我如何找出最适合某种情况的方法 有人可以提供一些例子来了解功能和性能方面的差异吗 XMLHttpRequest是原始浏览器对象 jQuery 将其包装成更可用和简化的形式以及跨浏览器一致的功能 jQuery ajax是 jQuery 中的通
  • 尝试在本地主机上测试我的 php 文件,但只出现一个空白页面,没有错误消息

    我正在运行 Apache 和 mySQL 因为我检查了所有日志 似乎没有任何错误 我的目标是每当有新的表单条目时就向特定地址发送电子邮件 我对后端和 PHP 缺乏经验 所以我不太确定哪里出了问题 任何帮助将不胜感激
  • AJAX Rails 验证

    我的表单和验证可以很好地处理常规的 http 请求 我希望它使用 AJAX 我知道我可以在客户端进行验证 但这似乎是多余的 因为我已经在模型中定义了验证 当用户填写表单时 我想就他们的条目向他们提供反馈 在 AJAX 表单中使用 Rails
  • 使用ajax发送表单数据

    我想用 ajax 以表单形式发送所有输入 我有一个这样的表单
  • 如何从 jquery .load 获取 php 响应

    例如我给出另一个代码 这是我的 some3 php 代码 第一个文件
  • 如何在没有数据库的情况下创建AJAX分页?

    是否可以在没有 MySQL 帮助的情况下获取 AJAX 分页页面 难道我不能只添加一个包含我需要显示的文本和标记的 PHP 文件 然后通过单击页码将该内容提供给用户吗 那么可以用纯 jQuery 和 PHP 来实现吗 您会使用什么代码方法来
  • 上传进度条 Java Servlet?

    我想使用 servlet 显示上传进度条 我尝试过Ajax iFrame 技术 页面没有重新加载 文件也被上传 但是 进度条没有出现 有没有可用于 javaservlts 的 jQuery 进度插件 Thanks 我强烈推荐jQuery 上
  • 如何使用重复的键动态生成 JSON 对象?

    我知道这听起来不可能 但我的老板告诉我 我必须使用 jQuery 通过 AJAX 后调用发送 JSON 并且必须具有重复的键 问题是 如果我写这样的东西 post someurl key1 value1 key2 value2 key2 v
  • 重复的“Access-Control-Allow-Origin: *”标头会破坏 CORS 吗?

    所以我们有一个提供 JSON 服务的 http 资源 它添加了一个 Access Control Allow Origin 旗帜 所以这可以用 CORS 加载 except 所以我被告知 有一些 IE9 怪癖 这意味着这在 IE9 中仍然不

随机推荐

  • 如何忽略转义\ python列表?

    我想忽略以下代码中的转义字符 gt gt gt a gt gt gt print a 我想输出像 有什么办法可以做到这一点吗 Using string escape unicode escape编码 参见Python 特定编码 http d
  • React - 动态渲染一定数量的组件

    我想根据用户获得的积分数显示组件星号 MUI 组件 的数量 this state points 我不知道该怎么做 import React Component from react import Star from material ui
  • 使用拼凑时如何减少图之间的空间

    大家好 我正在使用一个小数据框来构建一些图ggplot2 我的数据框是df我把它包括为dput 在最后 我有情节 当我使用时问题出现patchwork 我希望最终的图没有空格 以便中间的线 即轴 可以将图连接在一起 这是代码 library
  • ITfoxtec SAML 2.0:配置 AWS SSO 时出现 InvalidSignatureException

    我有一个小型测试应用程序 已成功与 Okta 作为 IdP 集成 我还设置了 AWS SSO 来充当 IdP 当我将应用程序切换为使用 AWS SSO 时 出现以下错误 ITfoxtec Identity Saml2 Cryptograph
  • 测试对象是否实现接口

    以前可能有人问过这个问题 但快速搜索只提出了与 C 相同的问题 看这里 https stackoverflow com questions 410227 test if object implements interface 我基本上想做的
  • 根据另一个值的聚合查询唯一值,同时完全根据第三个值进行分组

    所以我知道这个问题并不是一个新问题 但我正在努力解决这个问题并了解处理此类情况的最佳方法 假设我有一个假设的表 X 如下所示 GroupID ID identity SomeDateTime 1 1000 1 1 01 1 1001 2 2
  • C 中的 OO 多态性、别名问题?

    我和一位同事正在尝试实现一个简单的多态类层次结构 我们正在开发嵌入式系统 并且仅限于使用 C 编译器 我们有一个基本的设计思想 可以在没有警告的情况下进行编译 Wall Wextra fstrict aliasing pedantic 并在
  • iOS 8 UITabBarController 和 UINavigationController 的旋转问题

    我在使用 iOS8 时遇到一个问题 这里我有我的视图层次结构 窗口 gt UITabBarController gt 2 个选项卡 Tab 1 gt UINavigationController1 gt UIViewController1
  • 通过 set/get 方法修改类

    尝试通过 get set 方法修改类中的对象 我无法理解如何仅使用 get set 方法来更改值 预期输出 输出 89 实际输出 输出 0 include
  • 如何在 Web 应用程序中获取客户端计算机的 Mac 地址

    我必须获取运行我的网站的客户端 PC 的 Mac 地址 那么如何获取客户端计算机的 Mac 地址 而不是托管网站的服务器的 Mac 地址 我需要与 IE Firefox Safari 和 Chrome 兼容的脚本 实现这一点的唯一方法是使用
  • 如何在 Cassandra 中将批处理语句和 LWT 作为事务执行

    我有两个模型如下的表 CREATE TABLE IF NOT EXISTS INV CODE TEXT PRODUCT CODE TEXT LOCATION NUMBER TEXT QUANTITY DECIMAL CHECK INDICA
  • 约束布局 - Textview 在尺寸增大时会与其他视图重叠

    上图显示了我想要的视图的样子 问题是 当上重力文本尺寸增加时 它会将图像推离视图 我尝试使用障碍 但无法使其发挥作用 下图显示了我在实现这一目标方面已经走了多远 但现在的问题是图像总是卡在最后 但我希望它位于重力文 本旁边 当该文本增加时
  • 与 import python 有点困惑

    我有 PHP 以及其他一些东西 背景 并且正在使用 Python 在 PHP 中 当我想包含另一个文件时 我只需这样做include or require并且该文件中的所有内容都包含在内 但似乎在 python 中做事情的推荐方法是from
  • 如何扩展 keyof 类型以使其包含密钥的修改版本,例如前缀为“-”?

    例如 我想将 Typescript 类型安全添加到普通 Javascript 中按字符串属性值对对象数组进行排序 https stackoverflow com a 4760279 13815493解决方案 它接受要排序的对象的键作为 ar
  • MVC5 OWIN ws-federation AuthenticationManager.GetExternalLoginInfoAsync() 返回 null

    我正在尝试在 Visual Studio 2013 中的新 MVC 5 项目中设置集成 OWIN WS Federation ADFS 身份验证 Startup Auth 中的 WsFederation 配置如下 app UseWsFede
  • 异常堆栈跟踪

    实现异常堆栈跟踪的最佳方法是什么 我找到了某种使用 uncaught exception 的解决方案 但它需要向每个函数添加一些代码 我需要在 Linux 和 Windows 下的 gcc 上工作的东西 我认为没有跨平台的方法可以做到这一点
  • 为什么 OrElseGet 似乎没有被调用

    我正在使用 Spring Boot 构建 REST API 并决定在 Spring Boot 最新版本中构建它 我遇到的问题是 由于某种原因我的代码似乎无法达到OrElseGet 或者我不知道如何处理Optional stuff 我想要做的
  • 使用子目录中的 404 ErrorDocument

    我的子文件夹中有一个 htaccess 文件 如下所示 subfolder htaccess 在htaccess文件中使用以下代码设置404 ErrorDocument ErrorDocument 404 404 php 问题是加载根目录中
  • 如何使用 jQuery UI 的 droppable 排序和创建多个文本字段?

    设想 我希望我的用户能够通过将产品拖到可放置和可排序的列表中来创建购物清单 根据产品在列表中的位置以及产品的价值 必须填充此表单的文本字段 jsFiddle http jsfiddle net imjp 5NWAQ 1 http jsfid
  • 如何为使用 AJAX 获取的页面或内容添加“书签”?

    如何为使用 AJAX 获取的页面或内容添加 书签 看起来 如果我们只是将详细信息添加到 锚点 然后使用路由 甚至在 PHP 代码或 Ruby on Rails 的 Route rb 中 捕获该部分 然后显示内容或页面 这似乎很容易因此 显示