[英]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.