在http://zentili.koding.com上,我有这个 javascript,它在索引页面的主 #content div 内加载链接菜单项的内容,并应用加载页面名称减去“ .php',否则它会加载散列 + '.php',如果它在 url 中输入。效果很好。另一方面,ENG/ITA 条目在 url 中添加 ?locale=lang_LANG,就在哈希之前,因此本地化也可以正常工作。如果您仔细观察,您可能会注意到,当您在 ENG 和 ITA 之间切换时,index-content 会出现一会,然后才会进入散列。我知道这是因为页面首先被加载,然后被带到散列,但我想知道是否有某种方法可以隐藏主页并在加载时直接进入散列位置。
这是我的菜单的代码:
<script type="text/javascript">
$(document).ready(function() {
var hash = window.location.hash.substr(1);
var href = $('#menubar a.item').each(function(){
var href = $(this).attr('href');
if(hash==href.substr(0,href.length-4)){
var toLoad = hash+'.php';
$('#content').load(toLoad);
$("#menubar a.item").removeClass("current");
$(this).addClass("current");
}
});
$('#menubar a.item').click(function(){
window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-4);
var toLoad = $(this).attr('href');
$('#content').fadeOut('fast',loadContent);
function loadContent() {
$('#content').load(toLoad,'',showNewContent) }
function showNewContent() {
$('#content').fadeIn('fast'); }
$("#menubar a.item").removeClass("current");
$(this).addClass("current");
return false;
});
});
function goENG(){
var hash = window.location.hash;
var eng = '?locale=en_EN';
window.location.replace(eng+hash) ;
};
function goITA(){
var hash = window.location.hash;
var ita = '?locale=it_IT';
window.location.replace(ita+hash) ;
};
</script>
函数 goENG() 和 goITA() 通过 onclick 调用 ENG 和 ITA a's。我希望找到一些解决方案。