ページをリロードすることなく、現在のページのURLを変更する方法はありますか?
できれば#ハッシュの前の部分にアクセスしたいのですが。
ドメインの後の部分を変更するだけなので、クロスドメインポリシーに違反しているわけではありません。
window.location.href = "www.mysite.com/page2.php"; // Sadly this reloads
**注:HTML5ブラウザを使用している場合は、この回答を無視してください。これは、他の回答に見られるように、現在可能です。
ページを再読み込みせずにブラウザでURLを変更する方法はありません。URLは、最後に読み込まれたページの内容を表しています。もし、それ(document.location
)を変更すると、ページを再読み込みします。
わかりやすい例としては、www.mysite.com
に銀行のログインページのようなサイトを書いたとします。そして、ブラウザのURLバーをwww.mybank.com
と変更します。ユーザーは、実際には www.mysite.com
を見ていることに全く気づかないでしょう。
単にURLの断片を変更しているのでなければ、接続先(window.location
またはdocument.location
のいずれか)を変更すると、その新しいURLにリクエストが発生します。URLを変更すると、URLも変更されます。
現在使用しているURLが気に入らない場合は、Apacheのmod_rewriteのようなサーバーサイドのURLリライト技術を使用してください。
悪意のあることをしようとしていなければ、htaccessを使って、自分のURLにしたいことを魔法のように実現することができます。