1

私はワードプレスで作業しています。ローカル リンクをクリックしたら、URL を変更したいと思います。私は ajax でページを読み込んでいるので、これをやりたいのです。
"http://site.com/" と読み込まれたコンテンツ /example-page/ の間にハッシュを追加して URL を変更すると、結果は "http://site.com/#/example-page" になり、サンプルページをロードしますが、「!」を追加したい このテーマと同じよう に、「http://site.com/#!/example-page」を取得するようにマークしてください。ところで、 jquery-hashchangeプラグイン
を使用しています。 ご意見をお聞かせください。


このコードは解決後に編集されているため、正しいコードです。

jQuery(document).ready(function($) {
  var $mainContent = $("#container"),
    siteUrl = "http://" + top.location.host.toString(),
    url = '';
  $(document).delegate("a[href^='"+siteUrl+"']:not([href*=/wp-admin/]):not([href*=/wp-login.php]):not([href$=/feed/])", "click", function() {
    location.hash = '!' + this.pathname;
    return false;
  });
  $("#searchform").submit(function(e) {
    location.hash = 's/' + $("#s").val();
    e.preventDefault();
  });
  $(window).bind('hashchange', function(){
    url = window.location.hash.substring(3);
    if (!url) {
      return;
    }
    url = url + " #content";
    $mainContent.animate({opacity: "0.1"}).html('Please wait...').load(url, function() {
      $mainContent.animate({opacity: "1"});
    });
  });
  $(window).trigger('hashchange');
});
4

1 に答える 1

3

変化する

location.hash = this.pathname;

location.hash = "#!" + this.pathname;

(厳密に言えば、以前にハッシュがあったはずです)そして変更

url = window.location.hash.substring(1);

url = window.location.hash.substring(2);

そしてまた変わる

location.hash = '?s=' + $("#s").val();

location.hash = '#!?s=' + $("#s").val();
于 2012-05-19T22:55:10.863 に答える