我有一个基于 anchor 的网站。
例如。默认 URL 为 domain.com
。
此网站的另一个部分的 URL 为 domain.com/#section1
。
还有一个部分的 URL 为 domain.com/#section2
。
当我尝试获取 webiste 的完整 URL 时,我使用了
window.location.href
但是当我向下滚动页面并且 URL 更改为 domain.com/#section1
时,我的 window.location.href
没有改变。
我的JS:
$anchor = window.location.hash;
if($anchor == "#kraftwerk-82"){
$(".starting-logo.default-logo").attr("src","/logo_main.png");
$(".starting-logo.default-logo").attr("srcset","/logo_main.png 1x, /retina_logo.png 2x");
}else{
$(".starting-logo.default-logo").attr("src","/logo_main_white.png");
$(".starting-logo.default-logo").attr("srcset","/logo_main_white.png 1x, /retina_logo_white.png 2x");
}
如何使用 JS 动态获取具有正确 anchor 的 URL?
最佳答案
您可以使用window.location.hash
仅获取哈希标签:
yourHash = window.location.hash.substring(1)
更新
if(window.location.hash){
console.log(window.location.href + window.location.hash);
}else{
console.log(window.location.href);
}
更新二
当您滚动时,您需要更改哈希值。示例:
var anchor_top = $('a[href="#kraftwerk-82"]').offset().top;
$(window).on('scroll', function() {
if ( $(window).scrollTop() > anchor_top ) {
window.location.hash = '#kraftwerk-82';
}
});
在调用的函数上,您现在可以检查哈希值:
Function track(){
$anchor = window.location.hash;
if($anchor == "#kraftwerk-82"){
$(".starting-logo.default-logo").attr("src","/logo_main.png");
$(".starting-logo.default-logo").attr("srcset","/logo_main.png 1x, /retina_logo.png 2x");
}else{
$(".starting-logo.default-logo").attr("src","/logo_main_white.png");
$(".starting-logo.default-logo").attr("srcset","/logo_main_white.png 1x, /retina_logo_white.png 2x");
}
}
关于javascript - 使用 JS/Ajax 动态获取带有 anchor 的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46339289/