我目前在 hashchange 和 jQuery 移动冲突方面遇到了一些问题,所以我希望手动更改 url 并自己处理请求。
小问题虽然,我目前正在使用:
$('#test').click(function() {
window.location = "/test/#hash";
});
它成功地更改了我想要的 url,但随后尝试加载请求的 url,我只想更改 url 而不是提示页面加载。这是可能吗?任何建议将不胜感激!
我目前在 hashchange 和 jQuery 移动冲突方面遇到了一些问题,所以我希望手动更改 url 并自己处理请求。
小问题虽然,我目前正在使用:
$('#test').click(function() {
window.location = "/test/#hash";
});
它成功地更改了我想要的 url,但随后尝试加载请求的 url,我只想更改 url 而不是提示页面加载。这是可能吗?任何建议将不胜感激!
You can use the pushState method:
window.history.pushState({foo: 'bar'}, 'other page', '/test/#hash');
https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history
Be careful, this functionality is not supported by <= IE9
JAVASCRIPT
$('a').on('click', function(e) {
var element = $(this),
element_anchor = element.attr('href'),
element_title = element.attr('title');
if (typeof window.history !== 'undefined')
{
window.history.pushState({anchor: element_anchor}, element_title, '/test/' + element_anchor);
}
e.preventDefault();
});
HTML
<a href="#first_page" title="this is the first page">first page</a>