使用 JavaScript 更改浏览器中的 URL,而不加载新页面

2023-11-23

我怎样才能有一个JavaScript可能会对当前页面产生一些影响,但也会更改浏览器中的 URL 的操作,因此如果用户点击重新加载或添加书签,则会使用新的 URL?

如果后退按钮能够重新加载原始 URL,那就太好了。

我正在尝试在 URL 中记录 JavaScript 状态。


如果您希望它在不支持的浏览器中运行history.pushState and history.popState然而,“旧”方法是设置片段标识符,这不会导致页面重新加载。

基本思想是设置window.location.hash属性到包含您需要的任何状态信息的值,然后使用window.onhashchange 事件,或者对于不支持的旧浏览器onhashchange(IE setInterval例如)并更新页面。您还需要检查页面加载时的哈希值以设置初始内容。

如果你使用 jQuery 有一个哈希更改插件将使用浏览器支持的任何方法。我确信其他库也有插件。

需要注意的一件事是与页面上的 id 发生冲突,因为浏览器将滚动到具有匹配 id 的任何元素。

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

使用 JavaScript 更改浏览器中的 URL,而不加载新页面 的相关文章

随机推荐

  • aspnet-codegenerator:即使添加 Microsoft.VisualStudio.Web.CodeGeneration.Design 之后,也没有可用的代码生成器

    无法使用生成脚手架aspnet 代码生成器 下面是我尝试过的 使用创建了 ASP Net RazorPages 应用程序dotnet new webapp Did a dotnet build 使用安装的 dotnet aspnet cod
  • 使用单个 main 执行多个 python 文件

    我有多个 python 文件 每个文件都有不同的类和方法 我想使用我在所有文件之外单独拥有的主要功能来执行所有这些文件 例如 我有三个文件 one py two py Three py 我在其中任何一个中都没有 main 方法 但是当我执行
  • 来自 sys.platform 的可能值?

    以下命令可能的返回值是什么 import sys print sys platform 我知道有很多可能性 所以我主要对 主要 可能性感兴趣 Windows Linux Mac OS System Value Linux linux or
  • 将 postgres 更改为不区分大小写

    如何将 Postgresql 数据库更新为不区分大小写 我已经有一些表和一些数据 目前它们区分大小写 但我想将它们全部更新为不区分大小写 你无法得到你的database不区分大小写 但从 v12 开始 您可以创建不区分大小写的 ICU 排序
  • 在 iPhone 中显示带有文本框的警报视图

    是否可以像 AppStore 应用程序一样显示带有文本框的警报视图 它在这样的对话框中要求输入密码 我至少见过一些其他第三方应用程序在使用它 它是私有 API 吗 这是来自 Tharindu Madushana 的 Apple 批准 的操作
  • 从文件加载 RSA 私钥时出现 InvalidKeySpecException

    我正在尝试从 java 中的文件加载私钥 该密钥由 ssh agent 生成 我实际上正在使用下面的代码 public PrivateKey getPrivateKeyFromFile try String privateKey readF
  • 角度拦截器和 CORS

    我正在尝试编写一个拦截器 以使用 Angular 向所有 HTTP 请求添加令牌 我大致使用这里给出的食谱 https thinkster io interceptors 所以代码使用 http 模块工厂和tokenInterceptor
  • 使用 UNION 时,SQL 查询是否保证以原子方式执行?

    我正在发出一个由使用 UNION 分组的多个 SELECT 组成的单个 SQL 查询 SELECT FROM employee LEFT JOIN department ON employee DepartmentID department
  • 是否可以在 Visual Studio 调试会话之间保留 Cookie

    我有一个身份验证 cookie 当我在本地环境中点击登录屏幕后 该 cookie 就会被设置 该 cookie 已被设置为持久性的 并被赋予未来 7 天的超时期限 当我结束调试会话并在另一个构建后开始调试时 cookie 不存在 每个浏览器
  • jquery 获取加载时 iframe 内容的高度

    我有一个帮助页面 help php 我正在 main php 的 iframe 中加载该页面 在 iframe 中加载此页面后 如何获取该页面的高度 我问这个是因为我无法将 iframe 的高度设置为 100 或自动 这就是为什么我认为我需
  • C++ 中的除法[重复]

    这个问题在这里已经有答案了 我是 C 新手 我尝试了这个简单的代码 include
  • 如何将数组作为参数传递给 vararg 函数?

    我有一些代码看起来像这样 uint8 t activities 8 uint8 t numActivities 0 activities numActivities someValue activities numActivities so
  • 将 Dropbox 集成到 Android 应用程序中,但没有登录弹出窗口

    我想在我的应用程序中使用保管箱 我开发了一个用于上传和下载文件的示例应用程序 它要求身份验证 但我不想打开登录弹出窗口 其他用户是否可以使用默认帐户 单个帐户 登录详细信息访问保管箱 因此任何用户都可以直接使用 dropbox 而无需弹出登
  • 可以在 Visual Studio 中使用 WSDL 自动生成代码

    您好 我想使用测试以下功能 http msrmaps com terraservice2 asmx op ConvertLonLatPtToNearestPlace 是否有一些更快的方法可以使用 Visual Studio 2010 对其进
  • 部分匹配行名时发出警告

    我刚刚发现了数据框中行名称部分匹配导致的错误 有没有办法禁用部分匹配 运算符或在使用全局匹配时生成警告 我知道这是可能的exact TRUE为了 运算符或与options warnPartialMatchDollar TRUE for 索引
  • 派生类的指针可以类型转换为其基类的指针吗?

    new 返回的派生类的指针可以进行 类型转换为其基类的指针 这是对还是错 我知道dynamic cast可以用来消除缺点 一般来说 如何将派生类的指针转换为其基类的指针 是的 从指向派生类的指针到指向基类的指针的转换是隐式的 因此 以下内容
  • JUnit - 如何测试具有不同值的方法?

    我有一个方法并希望用不同的值来测试它 我的问题是 如何编写 JUnit 测试来测试具有不同值的相同方法 您可以查看参数化测试 例如example 你也可以使用理论这在很多情况下更方便
  • Android 中使用 Kotlin 的 HTTP 请求

    我想使用 POST 方法进行登录验证并使用 GET 方法获取一些信息 我已经有了我之前项目的 URL 服务器用户名和密码 对于安卓系统 Volley是一个很好的起点 对于所有平台 您可能还想查看ktor客户或http4k这都是很好的图书馆
  • React Admin 显示非常混乱

    我的 RA 项目在本地部署时渲染良好 但是 当我将构建目录复制到 S3 存储桶进行部署时 它渲染得一团糟 有时它会起作用 但大多数时候它会呈现如下图所示 它在使用 AOR 的两种环境中都可以正常工作 环境 React admin版本 2 0
  • 使用 JavaScript 更改浏览器中的 URL,而不加载新页面

    我怎样才能有一个JavaScript可能会对当前页面产生一些影响 但也会更改浏览器中的 URL 的操作 因此如果用户点击重新加载或添加书签 则会使用新的 URL 如果后退按钮能够重新加载原始 URL 那就太好了 我正在尝试在 URL 中记录