5

URLのハッシュを変更し、メインページからdivを挿入/削除する関数があります。これは、リロードせずに操作できるページを作成できるようにするためでしたが、同時に、特定のセクションをブックマークして、後でページを再度表示しなくても移動できるようにしたかったのです。

hash()すべてのdivを閉じ、ハッシュに応じて特定のdivを開く関数を呼び出そうとすると、機能しません。関数にinを入れると、想定どおりにポップアップするifため、ステートメントに正しいものが含まれていない可能性があります。alert()hash()

function hash(){
    if ( window.location.hash == "dcontact" ) { 
        removedivs();
        InsertContent('dcontact');
    }
    if ( window.location.hash == "dhome" ) {
       removedivs();
       InsertContent('dhome');
    }
}
hash();

私が言及したすべてを行うにはおそらくもっと良い方法があることを知っていますが、これは私が作成する唯一のWebサイトであり、スクリプトが最終的にどれほど乱雑であるかを気にすることはできませんでした。動作します。

4

1 に答える 1

7

それが機能しない理由は、実際のハッシュ(米国ではポンドと呼んでいると思います)記号-#window.location.hashの先頭にあります

メモリからIEはハッシュ記号を付けないので、次のようにします。

function hash() {
    var hash = window.location.hash.replace('#','');

    if (hash == "dcontact"){removedivs(); InsertContent('dcontact');}
    if (hash == "dhome"){removedivs(); InsertContent('dhome');}  
}

また、リンクごとにif()を実行するのではなく、InsertContent(hash)を呼び出すことも検討できます。

于 2010-11-18T12:10:02.560 に答える