2012-02-07 182 views
0

可能重複:
Making Browser Back button work while using AJAX requests瀏覽器後退按鈕/ #one #two等

我想寫一些jQuery的是,當瀏覽器的URL變化(不刷新),它會做的行動。

我會100%知道的網址是什麼,從而他們會

  • www.hello.com/#one
  • www.hello.com/#two
  • www.hello。 com /#三

我不太在意行動(我可以排序);更重要的是在未刷新時檢測到URL已更改。

任何指針?

我不想使用插件,因爲我覺得它們對我所需要的東西是過度的,因爲我知道我想要實現的具體細節。

+0

謝謝你生病給我看一下 – odd 2012-02-07 17:27:16

回答

1

退房從我的一個項目採取了以下代碼(http://yankele.co.il

$(document).ready(function() { 

    //Declare some variables... 
    var $mainContent = $('.main-content'), 
     contentHeight = $mainContent.height(), 
     siteURL = 'http://' + top.location.host.toString(), 
     hash = window.location.hash, 
     $internalLinks = $('a[href^=' + siteURL + ']'), 
     $ajaxSpinner = $('#spinner'), 
     URL = '', 
     $el; 
     console.log(contentHeight); 

    $mainContent.height(contentHeight);  
    $internalLinks.each(function() { 

     $el = $(this); 
     $el.attr('href', '#' + this.pathname); 

    }).click(function() { 

     $ajaxSpinner.fadeIn(); 
     $mainContent.animate({opacity: '0.1'}); 
     $('.current_page_item').removeClass('current_page_item'); 
     $el = $(this); 
     URL = $el.attr('href').substring(1); 
     URL += ' #inside'; 
     $mainContent.load(URL, function() { 
     marquee(); 
     $ajaxSpinner.fadeOut(); 
     $mainContent.animate({opacity: '1'}); 
     $el.parent().addClass('current_page_item'); 
     contentHeight = parseInt($mainContent.css('paddingTop')) + parseInt($mainContent.css('paddingBottom')) + $('#inside').height(); 
     $mainContent.animate({height: contentHeight}); 
     }); 

    }); 

    if (hash != '' && hash != '#/') { 

     $ajaxSpinner.fadeIn(); 
     $mainContent.animate({opacity: '0.1'}); 
     $('.current_page_item').removeClass('current_page_item'); 
     URL = hash.substring(1); 
     URL += ' #inside'; 
     $('a[href="'+window.location.hash+'"]').addClass('current_link').parent().addClass('current_page_item'); 
     $mainContent.load(URL, function() { 
     marquee(); 
     $ajaxSpinner.fadeOut(); 
     $mainContent.animate({opacity: '1'}); 
     contentHeight = parseInt($mainContent.css('paddingTop')) + parseInt($mainContent.css('paddingBottom')) + $('#inside').height(); 
     $mainContent.animate({height: contentHeight});   
     }); 

    } 

}); 

這是老了,但它的作品,它的作用是,在主要內容區域中的任何鏈接上點擊時,主內容將褪色成白色,AJAX微調器將出現,頁面將加載AJAX上的鏈接到頁面上。它也適用於刷新。

+0

我可能可以用這個歡呼聲工作 – odd 2012-02-07 17:27:01