我試圖通過使用散列變量來達到頁面中的某些選項卡。手動輸入url時,location.hash出現問題,腳本未運行
其工作原理適用於:頁面
- 鏈接(test.php的#TAB2)
它不工作當:
- 當你有
test.php
已經加載,並在地址欄中手動輸入「#tab2」(使其成爲test.php#tab2
並用回車完成)。該頁面不加載並且腳本未運行。
我試過它在不同的瀏覽器中,結果差不多。在Chrome中,您可以在地址欄中選擇整個網址,然後按回車(再次),即可使用 - 但總的來說,這是同樣的問題。
我已經採取了腳本我的網頁,並做了一個小的模板,在全碼:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-language" content="en" />
<script type="text/javascript" src="inc/jquery-1.6.2.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$.fn.showPage = function(hash) {
if (hash === '#tab1' || hash === '') {
if ($('#tab1').is(':hidden')) {
$('#tab1').show();
$('#tab2, #tab3').hide();
}
} else if (hash === '#tab2') {
if ($('#tab2').is(':hidden')) {
$('#tab2').show();
$('#tab1, #tab3').hide();
}
} else if (hash === '#tab3') {
if ($('#tab3').is(':hidden')) {
$('#tab3').show();
$('#tab1, #tab2').hide();
}
}
}
$('.menu').click(function(e){
e.preventDefault();
var hash = $(this).attr('id');
window.location.href = 'test.php' + hash;
$(document).showPage(hash);
});
var hash = location.hash;
$(document).showPage(hash);
});
</script>
</head>
<body>
<a href="#" id="#tab1" class="menu">Tab 1</a> <a href="#" id="#tab2" class="menu">Tab 2</a> <a href="#" id="#tab3" class="menu">Tab 3</a>
<div id="tab1">
Tab 1
</div>
<div id="tab2" style="display:none;">
Tab 2
</div>
<div id="tab3" style="display:none;">
Tab 3
</div>
</body>
</html>
我希望我做了我自己很清楚。感謝任何反饋!
謝謝你,我很可能會使用該插件。 – Mattis