0

我目前在 hashchange 和 jQuery 移动冲突方面遇到了一些问题,所以我希望手动更改 url 并自己处理请求。
小问题虽然,我目前正在使用:

$('#test').click(function() {
    window.location = "/test/#hash"; 
});

它成功地更改了我想要的 url,但随后尝试加载请求的 url,我只想更改 url 而不是提示页面加载。这是可能吗?任何建议将不胜感激!

4

1 回答 1

1

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>
于 2013-09-29T09:34:46.520 回答