1

これは非常に簡単だと思いますが、わかりません。

次の AJAX スクリプトを使用して、外部ページの特定の div からルート ページの同じ名前の div にコンテンツを読み込みます。

    $(function() {

    var newHash      = "",
        $mainContent = $("#main-content"),
        $pageWrap    = $("#page-wrap"),
        $el;


    $(document).delegate(".dyn a", "click", function() {
        window.location.hash = $(this).attr("href");
        return false;
    }); 


    $(window).bind('hashchange', function(){

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

        if (newHash) {

            $mainContent
                .find("#guts")
                .fadeOut(200, function() {
                    $mainContent.hide().load(newHash + " #guts", function() {
                        $mainContent.fadeIn(200, function() {
                            $pageWrap.animate({

                            });

                        });
                        $(".dyn a").removeClass("current");
                        $(".dyn a[href="+newHash+"]").addClass("current");
                    });
                });
        };

    });
    $(window).trigger('hashchange');
});

ルートページのタイトルをロード中のページのタイトルに変更するのを手伝ってくれませんか?

私は使用してみました:

var newTitle = $(responseHtml).filter('title').text();
document.title = newTitle;

この投稿で言及されているように、ほとんど機能しましたが、ajax が正しく機能しなくなりました。これを正しい場所に配置しているかどうかはわかりません。

前もって感謝します!

4

2 に答える 2

1

あなたはおそらく欲しいでしょうか:window.top.document.title = newTitle;

于 2012-07-25T15:41:43.527 に答える
1

hashchange 関数に以下を追加することで、これを達成することができました。

   String.prototype.toTitleCase = function(n) {
   var s = this;
   if (1 !== n) s = s.toLowerCase();
   return s.replace(/\b[a-z]/g,function(f){return f.toUpperCase()});
   }

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

   function changeTitle(title) { 

   document.title = window.location.hash.replace("#","").replace(/[_]/g,"").replace(".html","").replace("and","+").toTitleCase(); }
   changeTitle("");

これは、ページのファイル名からタイトルを取得し、ハッシュとアンダースコアを削除してから、各単語の最初の文字を大文字にします。

これを行うためのより良い、より簡単な方法があると確信しています。私が持っているものは今のところうまくいきます。

于 2012-07-31T20:17:19.500 に答える