3

以下に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;
}
4

2 に答える 2

1

の割り当てに関数名を追加しないでくださいwindow.onload

anonymous function次のように、代わりにを割り当てる必要があります。

window.onload = function(){
  // stuff
}
于 2013-03-17T22:20:56.453 に答える
1

The most likely problem here is that you're defining window.onload after the load event has taken place, which means that your handler is not being called. Either that, or some other code is overwriting your handler.

You don't need to wait until the window's load event for adding a hashChange event handler, so just use:

window.onhashchange = function() {
    var hashx = location.hash;
    switch (hashx) {
       case '#basketball':
           alert('1');
           break;
       case '#football':
           alert('2');
           break;
       default:
           alert('3');
}
于 2013-03-17T22:33:32.363 に答える