js修改hash的方法

关键:

javascript 复制代码
window.onhashchange = (event) => {
  // do something
}

hash变化包括

  • js修改hash
  • 手动修改url的hash
  • 浏览器前进、后退

js修改hash:

javascript 复制代码
location.href = "#user";

在vue-router等路由组件中如何实现history模式呢?

关键函数:history.pushState

javascript 复制代码
docment.getElementById('btn1').addEventListener('click', function() {
	const state = {.name: 'page1' };
	console.log('切换路由到page1');
	history.pushState(state, '', 'page1');
})

// 监听浏览器前进、后退
window..onpopstate = (event) => {
	console.log('onpopstate', event.state, location.pathname);
}

注意,history模式需要注意需要后端配合!如果不做浏览器兼容性处理,在history模式下切换了路由,此时再刷新,会模式去找page1这个页面,导致找不到该页面。所以我们需要在服务器配置返回index.html,路由由history.pushState触发。

相关推荐
admin and root5 小时前
「AI安全篇」实战AntiDebug自动化JS逆向加解密MCP
javascript·人工智能·网络安全·自动化·漏洞挖掘·cnvd·src赏金
longlongzihan6 小时前
LeetCode 17电话号码的字母组合:回溯算法(DFS)详解
c++·算法·leetcode·深度优先
封印师请假去地球钓鱼6 小时前
边解边变的问题:从“决策依赖“一词出发
人工智能·算法
今晚打老虎7 小时前
c++之提高A(前缀和)(第三课)
数据结构·c++·算法
wengad7 小时前
从 wangEditor 迁到 wangEditor-next
前端·javascript·vue.js
不会就选b8 小时前
算法日常・每日刷题--<贪心>26
数据结构·算法
行者-全栈开发9 小时前
【前端/JS框架】CVE-2026-3854:GitHub Enterprise Server X-Stat注入XSS漏洞深度剖析与紧急修复指南
前端·javascript·github
hetao173383710 小时前
2026-09-29 hetao1733837 的刷题记录
c++·算法
怕浪猫10 小时前
2026年金九银十,我面了22个前端
前端·javascript·面试
前端的日常10 小时前
一个人+AI做情侣食谱小程序,30天纯赚
前端·javascript·后端