繁体   English   中英

JQuery Ajax 在url中加入hash

[英]JQuery Ajax adding hash in the url

我这里有这段使用 struts2-jquery 插件的代码

<h4>Choose A task</h4>
    <ul>
        <s:url value="views/ajaxvalidation.jsp" var="ajaxvalidation" >
            <s:param name="menuId" value="1"/>
        </s:url>
        <li><sj:a targets="resultContent" href="%{ajaxvalidation}">Ajax Validation</sj:a></li>
    </ul>

当我点击它的内容时,url 会变成这样,url 没有任何变化。它仍然保持不变,我想要的是当我点击链接时会发生这样的事情www.myapp.com/#ajaxvalidation . 当我运行代码时,锚标记被翻译成这样

<a id="anchor_1365013162" href="javascript:void(0)">Ajax Validation</a>

鉴于此,我将如何在 url 中添加 hash?

这是一个工作示例(不考虑Struts2):

<html>
<body>
<a id="123" href="">Add Hash</a>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script>
$(document).ready(function() {
    $("a").click(function(e) {
        window.location.hash = $(this).attr("id");
        e.preventDefault();
    });
});
</script>
</body>
</html>

如果您不想跳转页面,那么可以通过在现代浏览器上使用历史记录 API 来回退旧浏览器来解决此问题:

if(history.pushState) {
    history.pushState(null, null, '#myhash');
} else {
    location.hash = '#myhash';
}

感谢 Lea Verou

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM