簡體   English   中英

在頁面加載時獲取ajax哈希url

[英]get ajax hash url on page load

所以說我在做一個ajax調用時設置了哈希:

示例: http//example.com/#hash.html

如果我加載另一個頁面並單擊后退按鈕,我將如何檢測哈希並在加載時提取網址? 剩下的我已經被覆蓋了:)。

如果您需要更多代碼,請告訴我。 順便說一下,我正在使用jquery。

你有幾個選擇。

最明顯的一個是

window.location.hash;

...多年來一直是實際JavaScript的一部分( 這里有更多信息或通過谷歌搜索“javascript location hash”)。

還有一個名為jQuery.Url的jQuery插件,它有許多用於處理URL的很好的功能。

有一個事件, hashchange ,但它只在Firefox 3.6,IE8中支持,我假設最新的Chromes和Safaris。

為獲得最佳支持,請檢測hashchange事件,如果不存在,則使用帶有setInterval()的輪詢函數。

所以你會做點像......

(function() { 

   var hash = window.location.hash;

   if ('onhashchange' in window) {
      window.onhashchange = hashChanged;
   } else {
      setInterval(function() {
         if (window.location.hash != hash) {
             hash = window.location.hash;
             hashChanged();
         }
      }, 500);
   }

   var hashChanged = function() {
     alert('Hash has changed!');
   };

})();

使用window.location.hash在來回導航時在url中加載適當的哈希內容的簡單示例。

希望這有助於某人...干杯!

<!DOCTYPE html>
<html>
<head>
<style type="text/css">
    a{
        text-decoration: none;
        color:#999;
        font: arial;
    }
    .content{
        width: 50%;
        height: 30px;
        border:1px solid darkorange;
        padding: 3%;color:#999;
    }
</style>


<body>
<div class="box">
<a id="hash1" href="">Add Hash1</a>
<a id="hash2" href="">Add Hash2</a>
</div>
<div class="content"></div>
<script src="jquery-1.11.3.min.js" type="text/javascript"></script>
<script>
$(document).ready(function() {
    $(".box a").click(function(e) {
        window.location.hash = $(this).attr("id");
        e.preventDefault();
    });
$(window).on('hashchange', function() {
  if (location.hash === '#hash1') {
    $("div.content").html('Hash one added!');
  }
  if (location.hash === '#hash2') {
    $("div.content").html('Hash two added!');
  }
  if (location.hash === '') {
    $("div.content").html('');
  }
});
});
</script>
</body>
</html>
$(function() {
   var page = window.location.hash;
   if (page == "") page = "somedefaultpage.html";
   $("#content").load(page);
});

如果您已正確連接導航,則加載到內容元素中的頁面應已存在,因為瀏覽器必須導航到#hash

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM