0

現在、hashchange と jQuery モバイルの競合で問題が発生しているため、URL を手動で変更して、自分でリクエストを処理しようとしています。
わずかな問題ですが、現在使用しています:

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

必要に応じてURLを正常に変更しますが、要求されたURLを読み込もうとします.単にURLを変更し、ページの読み込みを促したくありません. これはまったく可能ですか?どんな提案でも大歓迎です!

4

1 に答える 1

1

pushState メソッドを使用できます。

window.history.pushState({foo: 'bar'}, '他のページ', '/test/#hash');

https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history

この機能は <= IE9 ではサポートされていません。

ジャバスクリプト

$('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 に答える