Javascript 删除URL(fullpage.js)中的哈希

Javascript 删除URL(fullpage.js)中的哈希,javascript,jquery,url-rewriting,single-page-application,fullpage.js,Javascript,Jquery,Url Rewriting,Single Page Application,Fullpage.js,我正在使用插件 我希望像example.com/sectionname这样的干净URL,而不是像example.com/sectionname这样的哈希URL 插件没有提供这个选项,但我很好奇是否有一个足够简单的方法来实现这一点 更新1: 我已尝试过此回调: onLeave: function(index, nextIndex, direction) { if (nextIndex == 2) { history.replaceState(null, null, "/ab

我正在使用插件

我希望像
example.com/sectionname
这样的干净URL,而不是像
example.com/sectionname
这样的哈希URL

插件没有提供这个选项,但我很好奇是否有一个足够简单的方法来实现这一点

更新1: 我已尝试过此回调:

onLeave: function(index, nextIndex, direction) {
    if (nextIndex == 2) {
        history.replaceState(null, null, "/about")
    }
}
除此之外:

afterLoad: function(anchorLink, index) {
    if (index == 2) {
        history.replaceState(null, null, "/about");
    }
}
但是,当我滚动到第二部分时,URL是这样的:
www.example.com/about/#about

我还尝试了以下代码:

function locationHashChanged() {
    if (location.hash === "#about") {
        history.replaceState(null, null, "/about");
    }
}
window.onhashchange = locationHashChanged;

但是,当加载新节时,哈希会在更改为非哈希URL之前短暂显示。

您始终可以使用HTML5历史API。 您可以使用诸如
onLeave
afterLoad
之类的回调:

$('#fullpage').fullpage({
    afterLoad: function(anchorLink, index) {
        history.pushState(null, null, "bar.html");
    }
});
考虑到你需要为旧浏览器使用一些polyfill。或者直接使用


注意:在某些浏览器上,上面的示例可能不适用于localhost。你最好在服务器上试试。

已经在github问题中给出了答案:你的答案只是插件没有选项,我已经知道了。我想知道是否有不同的方法可以做到这一点。足够公平。我的答案在这里。只是不要使用锚选项。或者使用锁锚:true我想要历史记录和向前/向后功能。我喜欢你写的逻辑,我很难让每件事都正常运作,我自己写。基本上,我认为fullpage是完美的,但我只是不想在URL中使用哈希。你能告诉我如何修改插件的正确方向吗?@Benjamin这并不容易。这就是为什么它没有被实现:DThanks,我找到了!