“hashchange”在Wordpress

时间:2017-07-09 10:43:50

标签: javascript jquery wordpress hashchange

您好我正在建立这个网站:http://www.freiheitmedia.com/en/。它是用Themify Ultra主题构建的。

我的目标是在滚动或点击链接时删除网址中的#something部分。

我需要使用JavaScript / jQuery,因为没有基于主题的解决方案,支持人员无法帮助我。

我已经测试过并知道以下代码会替换我想要的网址:

history.replaceState("",document.title,window.location.pathname + window.location.search);

现在,问题是我似乎无法获得" hashchange"要触发的事件。我将以下代码放在页脚中,并且在两种情况下都没有达到警告声明:

<script>
    window.addEventListener("hashchange", function(e){
        alert("hiii");
    });
</script>

<script>
    window.addEventListener("hashchange", function(e){
        alert("hiii");
    }, false);
</script>

我怀疑主题设置可能会阻止hashchange事件,但这只是猜测。

你们有没有想过为什么&#34; hashchange&#34;没有解雇?

1 个答案:

答案 0 :(得分:0)

来自您的澄清评论:

  

当您访问该网站并向下滚动时,您会看到该网址会根据您所在的部分而变化。具体而言,#part会发生变化。我的目标是防止这种行为并且一直有一个干净的URL(没有任何#hashes)。

最好的方法是通过更新哈希来找到响应滚动事件的插件(这可能是有帮助的,大概是;如果你将它加入书签,则会将你带回页面的那一部分)并转向它关了。使用页面上的插件来控制哈希是一个坏主意。

非常好的第二名:

由于hashchange未触发,插件必须使用history的{​​{1}}或replaceState或类似设置哈希,因为它不会触发pushState。您可以使用自己的剥离哈希片段的版本替换这些函数:

hashchange

同样,但是,最好通过添加散列片段并禁用它来找到响应滚动事件的内容。