2

私は実際にユーザーがページをブックマークできるようにしようとしています。このために、javascript のハッシュ変更イベントを使用しています。これが私のコードです:

<script type="text/javascript">
function hashchk()
{
    hashvalue=window.location.hash;
    newhash="";
    for(var i=1;i<hashvalue.length;i++)
    {
        newhash=newhash+hashvalue[i];
    }
    if(hashvalue!="")
    {
        window.location.replace("viewme.php?ppid="+newhash);
    }
}
hashchk();
</script>

ユーザーが前のページに戻りたい場合、ブラウザの戻るボタンを 1 回ではなく 2 回押さなければならないという事実を除いて、ここではすべてが機能しています。

彼が 最初に戻るボタンを押してhttp://www.example.com/abc.php#helloにいる場合、URL だけがhttp://www.example.com/abc.phpに変わりますが、ページは読み込まれません。

しかし、次に押すと、きちんと来ます。一度だけ押してもらいたい。事前にサンクス。

4

1 に答える 1

1

私はあなたの質問について完全に明確ではありませんでした。ユーザーがハッシュ (#html3 など) を含むページに初めてアクセスした場合にこれを起動しようとしているように見えるので、サーバーからの適切なデータで画面を更新できます。質問自体は、hashchange イベントに直接関係していないようです。

この HTML をテストした結果、期待どおりに動作すると思います。ページが読み込まれて #hash が含まれている場合は常に、クエリ文字列でそれをリダイレクトします。これは、ページの更新にも機能します。

<script>
function hashchk()
{
    hashvalue=window.location.hash; 
     if(hashvalue!="") 
     { 
        window.location.replace("viewme.php?ppid="+hashvalue.substring(1)); 
    } 
}
hashchk();
</script>
于 2011-10-10T21:43:57.743 に答える