我正在構建一個基本站點,用戶單擊一個鏈接,Jquery使用jquery的load()方法通過對服務器的異步請求填充id =「article」的div。 這是HTML:將哈希值傳遞給Jquery .load()函數
<a href="#targetpage.html" onclick="menu('targetpage.html');"> TARGET PAGE</a>
調用此很簡單的功能:
var menu = function(page){ $('#article').load(page); //other code };
它工作正常。
但是,我希望用戶能夠使用永久鏈接,如 www.mysite.com/index.html#targetpage.html
,我期望js能夠讀取URL中的哈希值並相應地填充div。
問題是,當我嘗試將值window.location.hash傳遞給函數,(在加載或就緒狀態),一切都卡住了,我的js不再工作。我也嘗試用ajax()而不是load()函數,但它也不接受這個值。
編輯 如果我嘗試
var thispage = document.location.hash;
var hash = thispage.replace(/^#/, '');
和類型mysite.com/#page_one.html,警告說:
page_one.html,
這是很好的!但是然後
menu(hash);
不會將page_one.html的內容加載到div中。但是,點擊我的菜單工作正常。 在js控制檯中我沒有任何錯誤和警告。這裏是整個代碼involed:
<head><script type="text/javascript" charset="iso-8859-1">
var thispage = document.location.hash;
var hash = thispage.replace(/^#/, '');
alert(hash);
menu = function(page){
$('#article').load(page);
};
menu(hash);
</script>
</head>
<body>
<div id="menu">
<ul>
<li><p class="menuvoice">
<a href="#page_one.html" onclick="menu('page_one.html');">
Page One</a></p></li>
<li><p class="menuvoice">
<a href="#page_two.html" onclick="menu('page_two.html');">
Page Two</a></p></li>
</ul>
</div>
<div id="article"></div>
您是否希望從加載目標網頁的元素與'targetpage.html'的'id'屬性?如果出現這種情況,那麼在錨點末尾有'.html'這個事實看起來很奇怪。 – 2012-04-25 08:13:07
是的,你是對的,當然附加。html是沒有必要的,我只是作爲一個約定來使用它。 – mastazi 2012-04-25 08:18:10