javascript - 在 # 符号后检测 url 更改

标签 javascript jquery html

我正在使用这段代码来了解 # 符号后 url 中的内容:

var a = document.URL.split("#")[1];

例如,如果页面的url是http://example.com/path/to/somewhere/#contentpart , 变量 a将包含 contentpart .

但问题是,用户可能会单击指向同一页面但指向另一部分的链接(例如:<a href="#footer">Go to footer</a>),如果是这样,页面将不会重新加载。 (只是页面将被导航到其他地方)

我的问题是,如何检测同一页面上 # 登录后 URL 何时更改?

欢迎使用任何 javascript/jQuery 方法。

最佳答案

我建议,请记住您当前的代码:

$(window).on('hashchange', function(e){
    var newHash = document.href.split('#')[1];
});

虽然简单使用起来更容易一些:

$(window).on('hashchange', function(e){
    var newHash = document.location.hash;
    console.log(newHash);
});

JS Fiddle demo .

如果您不希望散列包含 # 字符,请改用:

$(window).on('hashchange', function(e){
    var newHash = document.location.hash.substring(1);
    console.log(newHash);
});

JS Fiddle demo .

关于javascript - 在 # 符号后检测 url 更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11978360/

相关文章:

javascript - node.js 如何使用 child_process.exec 显示标准输入

javascript - 让图像淡入、下降和反弹一次到位

jquery - 如何限制在禁用的 HTML 输入对象上传递值以供 ColdFusion cfquery 处理?

javascript - 如何通过单击链接使用 JavaScript 提交表单?

javascript - 下载选项表单的两个 onClick 事件

javascript - 如何在 React Native 中使用 TouchableHighlight 组件按下按钮时发生 2 个操作?

javascript - selectize.js 累积以前搜索的选项

javascript - 脚本似乎在 jQuery 加载之前运行 - 未捕获的 ReferenceError : $ is not defined

javascript - xhr 发送 base64 字符串并在服务器中将其解码为文件

html - SVG蜂窝多边形填充动画