javascript - 使用 JS/Ajax 动态获取带有 anchor 的 URL

标签 javascript jquery ajax anchor window.location

我有一个基于 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/

相关文章:

javascript - html div横向滑动的难点

Javascript如何合并或组合具有相同开放时间的日期数组

javascript - 移动可排序 div 后获取 jQuery 排序顺序

javascript - 动态更改导航颜色 JS/CSS

javascript - 如何将 "active"类添加到幻灯片中的可见幻灯片?

javascript - 通过javascript或jquery将hsla转换为rgba

javascript - 如何将文本放在div中其他文本的顶部

javascript - 如何使用 AJAX 发布多个值?

php - 处理 jQuery AJAX 的点击(使用 PHP)

javascript - 无法使用 AJAX 将 JS 变量传递给 PHP