HOME > JavaScriptの復習(トップ) > [js]ウィンドウ・リダイレクト
JavaScriptによるウィンドウ・リダイレクト
htmlリンクのhrefプロパティを使った画面遷移
表示中のページから他のページに移動(画面遷移・リダイレクト)させたいとき、通常はhtmlリンクのhrefプロパティを使います。●htmlリンクのhrefプロパティを使ってダミーページへ移動 htmlリンクのhrefプロパティは、このページをブラウザの履歴に残し、HTTPリファラを送信します。移動先からこのページに戻るには、「ひとつ前のページに戻る」ボタン(JavaScriptの"history.back();"を使用)クリックが利用できます。
<a href="dummy.html">●htmlリンクのhrefプロパティを使ってダミーページへ移動</a>
何らかの理由でhtmlリンクのhrefプロパティが利用できないとき、したくないときには、JavaScriptによる画面遷移をおこないます。
(1)JavaScriptによる画面遷移 window.location.href = 'dummy.html';
"window.location"
部分は、"document.location"
、または単に"location"
と書き換え可能です。
●JavaScriptでダミーページへ移動(1-a)●JavaScriptでダミーページへ移動(1-b)
●JavaScriptでダミーページへ移動(1-c)
いずれも動作もhtmlリンクと同じで、このページをブラウザの履歴に残し、HTTPリファラを送信します。このページに戻るには、異動先で「ひとつ前のページに戻る」ボタン(JavaScriptの"history.back();"を使用)クリックが利用できます。
<a href="javascript:window.location.href = 'dummy.html';">●JavaScriptでダミーページへ移動(1-a)</a>
<a href="javascript:document.location.href = 'dummy.html';">●JavaScriptでダミーページへ移動(1-b)</a>
<a href="javascript:location.href = 'dummy.html';">●JavaScriptでダミーページへ移動(1-c)</a>
(2)JavaScriptによる画面遷移 window.location.assign('dummy.html');
"window.location"
部分は、"document.location"
、または単に"location"
と書き換え可能です。動作は、すべて(1)の"href"
と同じです。●JavaScriptでダミーページへ移動(2-a)
●JavaScriptでダミーページへ移動(2-b)
●JavaScriptでダミーページへ移動(2-c)
<a href="javascript:window.location.assign('dummy.html');">●JavaScriptでダミーページへ移動(2-a)</a>
<a href="javascript:document.location.assign('dummy.html');">●JavaScriptでダミーページへ移動(2-b)</a>
<a href="javascript:location.assign('dummy.html');">●JavaScriptでダミーページへ移動(2-c)</a>
(3)JavaScriptによる画面遷移 window.location.replace('dummy.html');
"window.location"
部分は、"document.location"
、または単に"location"
と書き換え可能ですこの画面遷移は、ブラウザの履歴に残りません。移動先の「dummy.html」の「ひとつ前のページに戻る」ボタンは、履歴を参照したJavaScriptの"history.back();"を使用しているため、これをクリックしてもこのページに戻れません(このページに移動してきた前のページがあればそちらに戻ります)。このページに戻るには、ボタンの下側の履歴を参照しないhtmlのテキストリンクを使います。 ●JavaScriptでダミーページへ移動(3-a)
●JavaScriptでダミーページへ移動(3-b)
●JavaScriptでダミーページへ移動(3-c)
<a href="javascript:window.location.replace('dummy.html');">●JavaScriptでダミーページへ移動(3-a)</a>
<a href="javascript:document.location.replace('dummy.html');">●JavaScriptでダミーページへ移動(3-b)</a>
<a href="javascript:location.replace('dummy.html');">●JavaScriptでダミーページへ移動(3-c)</a>
(4)IE専用のJavaScriptによる画面遷移 window.navigate('dummy.html');
Internet Explorer専用の"window.navigate"
があります。これはHTTPリファラを送信しません。Internet Explorerは、すでにサポートが終了し、Windows10でも起動しようとすると、Microsoft Edgeが替わりに立ち上がります。今後、このメソッドを使う機会は無いと思われます。
●JavaScriptでダミーページへ移動(4)
<a href="javascript:window.navigate('dummy.html');">●JavaScriptでダミーページへ移動(4)</a>
追記:Microsoft Edgeを含む新しい主なブラウザで検証しましたが、いずれもnavigateメソッドによる画面遷移はできませんでした。唯一、Microsoft EdgeのIEモードで動作しました。動作確認に利用したEdgeのバージョンは「110.0.1587.50」でした。