2011-10-25 32 views
4

大家好!如何在我們的URL中創建/#!/?

幾乎3個小時im堆棧在這個問題! iv'e複製概念在twitter這樣如果twitter.com/#!/username那麼頁面/配置文件是用戶名,

http://twitter.com/#!/mardagz因爲你可以看到它重定向到我的帳戶,所以現在即時試圖讓我自己的通過獲取當前URL ..然後我修剪串和(/#!/)分開它,當我嘗試應用沒有什麼工作......

假設當前網址是http://www.domain.com/#!/about

守則:

$(window).load(function() { 
     var getUrl = top.location; 
     var trimUrl = jQuery.trim(getUrl); 
     var splitUrl = trimUrl.split('/#!/') 
     //alert(splitUrl[1]); 
     switch(splitUrl[1]) 
     { 
      case 'home': 
      //Do Something 
      break; 
      case 'skill': 
      //Do Something 
      break; 
      case 'about': 
      //Do Something go to About Us Page! 
      break; 
     } 
    }); 

owhh它不工作...任何人都有這個解決方案? :)預先感謝您.. :)

+4

'var hash = top.location.hash;'不需要修剪/分割。 –

+0

也許嘗試使用top.location.href?把一些警報,顯示你從鏈接字符串操作 – Victor

+0

@Marcelius Dagpin,請花一些時間閱讀[常見問題]。當問一個問題時,重要的是花一些時間來確保事情拼寫正確並書寫整齊。如果您希望我們投入一些時間來回答您的問題,您需要花時間提問。不要吝嗇,但我們不在乎你花5天還是5分鐘尋找解決方案,不要用那些無用的花絮來混淆你的問題,你也不需要感謝我們。 – zzzzBov

回答

6

如果要檢測哈希更改,請使用hashchange事件。如果您的頂級窗口位於相同的域,下面的代碼將像魅力一樣工作。否則,Same origin policy將阻止您的腳本訪問頂級文檔的location對象。

function hashChanged() { 
    var getUrl = top.location.hash.substr(3); // #!/ = 3 characters 
    switch(getUrl) 
    { 
     case 'home': 
     //Do Something 
     break; 
     case 'skill': 
     //Do Something 
     break; 
     case 'about': 
     //Do Something go to About Us Page! 
     break; 
    } 
} 
$(window).load(function(){ 
    // Set handler 
    $(window).bind('hashchange', hashChanged); 

    // Handle hash on load 
    hashChanged(); 
}); 
+0

owhh,完美噢,太感謝你了,先生, 嗯怎麼樣,如果我複製鏈接例如 http://www.domain.com/#!/skill 然後在瀏覽器的新窗口,使粘貼頁面應該是自動SKILL ..? ;)嗯 – mardagz

相關問題