2012-03-10 50 views
0

我試圖找到有關歷史和/或散列的好文章(和全文),但無濟於事。我發現的所有內容都是關於圖書館的,但我想用我的手寫阿賈克斯的歷史。如何在javascript中使用ajax處理歷史記錄?

我所知道的,我會使用歷史api(即沒有數字(#)符號)。對於不支持歷史記錄api的瀏覽器的用戶,我將放置<head>腳本,該腳本將重定向至:ex.com/adress1#/adress2至ex.com/adress2(此爲F5)。

你能幫我嗎?

+0

你到目前爲止嘗試過什麼(除了在這裏發佈這個問題)?你遇到了什麼困難? – 2012-03-10 10:28:14

+0

你看過https://github.com/balupton/History.js嗎?它支持舊版瀏覽器的歷史api和哈希。 – ThiefMaster 2012-03-10 10:43:04

+0

我不想使用庫!你讀過它嗎? 「我發現的所有內容都是關於圖書館的,但我想用我的手寫出我的阿賈克斯歷史。」 – 2012-03-10 10:44:57

回答

0

您是否在尋找這種解決方案?

$(".link").click(function() { 
    window.location.hash = "param"; 
}); 
$(init); 

function init() { 
    ajax_page_handler(); 
    page_load($(window.location).attr("hash")); 
} 

function page_load($href) { 
    if ($href != undefined && $href.substring(0, 1) == '#') { 

     if ($href === "#param") { 
      // load the relevant data 
     } 

     $('html, body').animate({ 
      scrollTop: 0 
     }, 'slow'); // bonus 
    } 
} 

function ajax_page_handler() { 
    $(window).bind('hashchange', function() { 
     $href = $(window.location).attr("hash"); 
     page_load($href); 
    }); 
}​ 
+0

不需要。我想要一個沒有任何庫的本機解決方案。 – 2012-03-10 10:45:47

+0

這不是歷史管理的圖書館。我只是使用jQuery。如果你不需要使用jQuery,你可以轉換爲純粹的JavaScript – 2012-03-10 10:48:39

+0

我正在尋找本地解決方案,寫我的手..但無濟於事。 我對這段歷史的發佈有一些想法: #1。將一個onclick事件綁定到所有鏈接:'Ajax link'。 this - 閱讀'this.href'(但是..我也可以通過'event.target || event.srcElement'..dunno來讀取),事件 - 讀取,點擊鼠標按鈕(如果3 - 返回true(如果1 - +返回false(不通過簡單鏈接) #2。我寫了:放在''腳本中,它會將我重定向到/ adress2。 – 2012-03-10 10:53:39

相關問題