我有下面的javascript声明。我需要执行一些函数而不是alert(),但它不起作用......我需要包含 document.getElementById(“”)。innerHTML =“”函数。我对js不是很有经验,如果有人会解释如何做到这一点以及问题出在哪里,我将非常感激。
window.onload = function locationHashChanged() {
var hashx = location.hash;
switch (hashx) {
case '#basketball':
alert('1');
break;
case '#football':
alert('2');
break;
default:
alert('3');
}
window.onhashchange = locationHashChanged;
}
答案 0 :(得分:1)
不要为window.onload
的分配添加功能名称。
您需要指定anonymous function
,例如
window.onload = function(){
// stuff
}
答案 1 :(得分:1)
这里最可能出现的问题是,在发生加载事件后,您正在定义window.onload
,这意味着您的处理程序未被调用。要么,或者其他一些代码都会覆盖你的处理程序。
你不需要等到window
的加载事件才能添加hashChange
事件处理程序,所以只需使用:
window.onhashchange = function() {
var hashx = location.hash;
switch (hashx) {
case '#basketball':
alert('1');
break;
case '#football':
alert('2');
break;
default:
alert('3');
}