html位置发生变化监听,用JS实现监听URL地址变化的教程

2023-11-18

最近一直在写单页模版,需要使用 js 来监听浏览器地址栏中 url 地址的变化,并做出相应的改变。而这篇文章就来说一说,使用用 JS 代码来监听浏览器地址栏URL地址的变化的方法。

js onhashchange 事件

当前的url地址发生改时(锚点部或参数部分),可以触发 js 中的 onhashchange 事件。

以调用都可以触发 js 的 onhashchange 事件

1、使用不同书签导航到当前页面(使用"后退" 或"前进"按钮)

2、点击链接跳转到书签锚

3、通过设置Location 对象 的 location.hash 或 location.href 属性修改锚部分。

js 监听url址改变的方法教程

例1:直接输写方法

js代码:

window.onhashchange = function () {

console.log('URL发生变化了');

};

例2:在html标签中调用

html代码:html>

Document

function myFunction(){

console.log('url地址被改变了');

}

补充说明:

下面是两个网上流行的示例,大家参考一下吧!

1、使用 addEventListener 事件

js代码:

window.addEventListener("hashchange", myFunction);

function myFunction() {

//要实现的逻辑

}

2、带有浏览器是否支持 onhashchange 事件的例子

js代码:

function hashChangeFire() {

//url改变,调用逻辑

}

// 判断浏览器是否支持onhashchange事件

if (('onhashchange' in window) && ((typeof document.documentMode === 'undefined') || document.documentMode == 8)) {

window.onhashchange = hashChangeFire;

} else {

// 如浏览器不支持onhashchange事件,则用定时器检测的办法

setInterval(function () {

// isHashChanged() 为要检测url是否被改变的函数

var ischanged = isHashChanged();

if (ischanged) {

hashChangeFire(); //如被改变,设用函数

}

}, 150);

}

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

html位置发生变化监听,用JS实现监听URL地址变化的教程 的相关文章

  • oracle date 和 timestamp区别

    在今天的工作中 学到了以下几个知识点 一 date和timestamp 的区别 date类型是Oracle常用的日期型变量 他的时间间隔是秒 两个日期型相减得到是两个时间的间隔 注意单位是 天 例如 查看一下当前距离伦敦奥运会开幕还有多长时
  • c++ multiple definition of 问题解决方法

    问题描述 有一个 h头文件 两个 cpp文件都引用了这个 h文件 在 h文件中声明了一些全局变量或函数 编译时报错 multiple definition of 原因 好像是由于多次包含 然后编译 cpp文件是重复 定义了 解决方法 1 使
  • Linux 通过RPM包安装 MySQL 8.0

    Linux平台上推荐使用RPM包来安装Mysql MySQL 提供了以下RPM包的下载地址 MySQL MySQL服务器 你需要该选项 除非你只想连接运行在另一台机器上的MySQL服务器 MySQL client MySQL 客户端程序 用
  • 一、安卓笔记(1)—Android Studio下的的APP目录结构

    一 Android Studio工程目录 1 gradle文件夹包含的是gradle工具的各个版本 不需要手动去填写 自动生成的 Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建开源工具 它使用一种基
  • C#开发Windows窗体应用程序的步骤

    使用C 开发应用程序时 一般包括创建项目 界面设计 设置属性 编写程序代码 保存项目 程序运行等6个步骤 1 创建项目 在Visual Studio2017开发环境中选择 文件 新建 项目 菜单 弹出 新建项目 对话框 如图8 1所示 图8
  • Linux环境下Ubuntu系统中下载gvim及相关配置

    分享一下Linux环境下gvim的下载以及自己的相关配置 也方便自己以后重新进行虚拟机的相关配置时进行参考 相关代码带有简略注释 Ubuntu版本18 04 6 首先是下载 命令窗口打开位置无所谓 在命令行中输入以下代码 sudo apt
  • Qt信号槽-原理分析

    转载一篇关于Qt信号槽原理解析的文章 讲解的很详细 有的地方可能有点深度 不过还是能很大程度上的帮助理解信号槽原理 一 问题 moc预编译在干嘛 signals和slots关键字产生的理由 信号槽连接方式有什么区别 信号和槽函数有什么区别
  • 性能优化面试题

    目录 1 当修改一个数据时 不想整个页面都被重新渲染 只想要渲染变更数据的那一部分 怎么做 2 页面是否可以快速加载 3 是否允许用户快速开始与之交互 4 怎么让滚动和动画流畅 5 怎么图片优化 6 骨架屏 合理的loading 7 长列表
  • 30款建模软件

    从入门级3D建模软件到中级再到高级的3D建模软件 从小白到大师相信总有一款适合你 下面是小编为大家列出的30款建模软件以及介绍 供您大开眼界 Google Sketchup 一款极受欢迎并且易于使用的3D设计软件 根据创作过程 开发了一套设
  • 冒泡排序(java)——3种方法

    这里的冒泡是按照从小到大的顺序来的 思想 将相邻的元素两两比较 当一个元素大于右侧相邻的元素时 交换他们的位置 当一个元素小于右侧相邻的元素时 不做任何改变 一 第一种方法 public static void main String ar
  • Python字典出现重复的键,以最后出现的值为准

    Python3 6及之后 字典是有序的了 出现重复的键 以最后出现的值为准 test dict a 1 a 2 a 3 print test dict 输出 a 3
  • 使用easyExcel导出excel文件

    1 导入jar包
  • Android Studio下载、安装和配置+SDK+tools下载(无敌超级详细版本)

    下载 Anderson Studio是Google为Android提供的官方IDE工具 下载地址 http www android studio org 此处下载3 4 1版本 安装环境要求 其中JDK的最低版本是1 7 所以系统空闲内存至
  • 一个普通聊友质问腾讯客服的录音 过瘾哈

    http yumengluentan uueasy com read htm tid 146 html
  • 关于区块链几个证书的理解

    关于区块链几个证书的理解 FISCO BCOS 1 说明 在FISCO BCOS中 证书这个概念有许多的概念 会在环境与节点配置 部署 构链等步骤中反复出现 例如链证书 机构证书 节点证书和客户端证书等 如下对这些概念和关系进行一个适当的理
  • 使用 source insight 代码跳转时出现 symbol not found 问题

    P S 本篇博客是根据自己的经验来写的 如果大家有不同意见随时交流 1 使用 source insight 代码跳转功能时出现 symbol not found 问题一般是有三种可能 在你添加代码时没有选择 Add tree 选项 创建 p
  • 用Requests和正则表达式爬取猫眼电影(TOP100+最受期待榜)

    目标站点分析 目标站点 猫眼榜单TOP100 如下图 猫眼电影的翻页offset明显在URL中 所以只要搞定第一页的内容加上一个循环加上offset就可以爬取前100 流程框架 1 抓取单页内容 利用requests请求目标站点 得到单个网
  • spring——IOC控制反转

    IOC控制反转思想 一 IOC简介 二 spring创建对象的三种方式 1 无参构造 2 静态工厂 3 实例工厂 三 Bean标签 1 bean标签的scope属性 singleton prototype多例 request session
  • import报错

    错误 import im6 q16 unable to read X window image Resource temporarily unavailable error xwindow c XImportImage 4977 impor

随机推荐

  • MyDLNote - Detection : 2019 CVPR 使用解耦表示(Disentangled Representation)学习的罕见事件检测

    CVPR 2019 Rare Event Detection using Disentangled Representation Learning Ryuhei Hamaguchi Ken Sakurada and Ryosuke Naka
  • Pandas函数set_option()学习笔记

    pd set option 函数用法 import pandas as ps pd set option expand frame repr True True就是可以换行显示 设置成False的时候不允许换行 pd set option
  • Shiro总结和常见面试题

    Shiro总结和常见面试题 一 什么是shiro Shiro是一个强大易用的java安全框架 提供了认证 授权 加密 会话管理 与web集成 缓存等功能 对于任何一个应用程序 都可以提供全面的安全服务 相比其他安全框架 shiro要简单的多
  • 电力系统有哪些大扰动?

    电力系统有哪些大扰动 答 电力系统大扰动主要指 各种短路故障 各种突然断线故障 断路器无故障跳闸 非同期并网 包括发电机非同期并列 大型发电机失磁 大容量负荷突然启停等
  • 游戏笔记本电脑可以进行 3D 建模和渲染吗?有哪些优势与缺点?

    3D 建模和渲染是创建令人惊叹的数字艺术 动画和游戏体验的最流行和最广泛使用的工具之一 随着技术的进步 对运行这些模型的强大计算机的需求呈指数级增长 对于那些寻求强大机器来处理 3D 建模任务的人来说 游戏笔记本电脑已成为一个可行的选择 游
  • R语言系列教程-----一起来学shiny吧(1)

    什么是shiny Shiny是一个R包 可让您轻松地直接从 R 构建交互式 Web 应用程序 应用程序 本系列是个长教程 带你由浅入深学习shiny 我们先使用系统自带的一个例子来介绍一下shiny 我们先导入shiny包 library
  • 华为OD机试 - 矩形相交的面积(Java)

    题目描述 给出3组点坐标 x y w h 1000
  • MD5 JavaCript调用法

    JS代码 code
  • 2、Java入门教程【IDEA】

    1 下载 IDEA社区版 下载地址 IDEA管理JAVA程序的结构 project 项目 工程 module 模块 package 包 class 类 2 创建工程 创建 project 点击 create 后 项目结构如下 创建 pack
  • 计蒜客T1113——整理药名

    先看题干 这道题并不难 如果你对编程语言的基础有很好的掌握 很容易理清整个逻辑 实际上 不涉及到算法的题目都是简单题 笔者带领大家理一下这道题的考察点 1 输入多个不定长字符串 2 将字符串的首字母一律变为大写 分本来就是大写和本来是小写两
  • 【GAN】基础原理讲解及代码实践

    首先什么是 的模型结构 设计 模型的关键 GAN的算法原理 这里输入噪声的随机性就可以带来生成图像的多样性 GAN公式讲解 D 表示判别器对真实图片的判别 取对数函数后我们希望其值趋于 也就是D 趋于 也就是放大损失
  • 【踩坑专栏】idea中的target缺失

    target文件夹缺失 但是在文件中能找到 这个是idea禁止了 我想起来之前我是因为在提交代码时有一些文件显示在commit里 所以禁止了一些文件 应该是那时候把target误禁了 解决办法 1 Ctrl Alt S 找到target 删
  • OpenCV之摄像头捕捉图像

    代码 数据类型 运行效果 代码 之前我找过directshow CameraDS VedioCaptureFromCam之类的东西 发现都不可以用 directshow是因为版本太老了 会出现 http www opencv org cn
  • Ajax简介和实例

    目录 什么是 AJAX AJAX实例 ajax get无参 ajax get有参 对象和查询字符串的互转 ajax post ajax post 表单 AJAX 是一种在无需重新加载整个网页的情况下 能够更新部分网页的技术 什么是 AJAX
  • 基于OpenHarmony开发的健康生活应用(ArkTS)

    健康生活应用 ArkTS 介绍 本篇Codelab介绍了如何实现一个简单的健康生活应用 主要功能包括 用户可以创建最多6个健康生活任务 早起 喝水 吃苹果 每日微笑 刷牙 早睡 并设置任务目标 是否开启提醒 提醒时间 每周任务频率 用户可以
  • ChatGPT报错:Sorry, you have been blocked解决方法

    今天打开ChatGPT 发现再一次报错了 又一次出问题了 无语 原因分析 1 内容过滤 某些平台或网站可能使用内容过滤系统 该系统可能将AlI语言模型视为潜在的风险 从而对其进行封锁或限制 这是为了防止不当内容的传播或滥用 2 隐私和安全考
  • 转载:NVIDIA GPU结构

    http blog itpub net 23057064 viewspace 629236 目前市场上的NVIDIA显卡都是基于Tesla架构的 分为G80 G92 GT200三个系列 Tesla体系架构是一块具有可扩展处器数量的处理器阵列
  • Node.js知识点大全 最全笔记 知识点合集

    第一章 绪论 第一讲 命令行窗口 命令行窗口也叫 小黑屏 cmd窗口 终端 shell win r cmd 回车 常用指令 dir 列出当前目录下的所有文件 cd 目录名 进入文件夹 md 目录名 创建一个文件夹 rd 目录名 删除一个文件
  • The Cherno——OpenGL

    The Cherno OpenGL 1 欢迎来到OpenGL OpenGL是一种跨平台的图形接口 API 就是一大堆我们能够调用的函数去做一些与图像相关的事情 特殊的是 OpenGL允许我们访问GPU Graphics Processing
  • html位置发生变化监听,用JS实现监听URL地址变化的教程

    最近一直在写单页模版 需要使用 js 来监听浏览器地址栏中 url 地址的变化 并做出相应的改变 而这篇文章就来说一说 使用用 JS 代码来监听浏览器地址栏URL地址的变化的方法 js onhashchange 事件 当前的url地址发生改