javascript - 使用 javascript 从 URL 中删除哈希 (#) & 值?

标签 javascript

<分区>

我在页面加载时使用 url #value 触发自定义模式弹出窗口,如果用户关闭模式,我想清除该值。我知道我可以使用 location.hash = '' 删除 #value。但这将留下 #

是否有跨浏览器的方法来删除下面网址中的 #value#

例如http://www.myweb.com/list.html#value

提前致谢!

最佳答案

没有直接的方法。

至于 Answer Pabel de Jesus Nuñez Landestoy 分享在顶端。当前的解决方法是编写一个小函数,

function removeHash () { 
    var scrollV, scrollH, loc = window.location;
    if ("pushState" in history)
        history.pushState("", document.title, loc.pathname + loc.search);
    else {
        // Prevent scrolling by storing the page's current scroll offset
        scrollV = document.body.scrollTop;
        scrollH = document.body.scrollLeft;

        loc.hash = "";

        // Restore the scroll offset, should be flicker free
        document.body.scrollTop = scrollV;
        document.body.scrollLeft = scrollH;
    }
}

原始答案来自:Andy E

关于javascript - 使用 javascript 从 URL 中删除哈希 (#) & 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39313420/

相关文章:

javascript - 如何使用 CSS 过渡切换重叠元素?

javascript - 如何使用嵌套循环引用相同的父/祖父作用域?

javascript - 双向绑定(bind)不更新 View 模型

javascript - 从 C# 为 javascript 变量赋值

javascript - Webpacking jQuery 和自定义文件 : jQuery is undefined

javascript - 如何在访问者退出网站时弹出

javascript - 获取当前div并添加html

javascript - 如何在 NodeJS 中使用 Web Speech API

javascript - 如何通过AJAX 将数据传递到PHP 页面,然后在另一个DIV 中显示该页面?

Javascript 延迟加载 div 元素中的内容