他のウェブページにリダイレクトする方法ってどうやるの?

このエントリーをはてなブックマークに追加

質問:

jQueryか純粋なJavaScriptを使って、あるページから別のページにユーザーをリダイレクトする方法ってどうやるの?

By venkatachalam | 質問日時: Feb 2 ‘09 at 12:54



回答1:

汝、リダイレクトするためだけにjQueryを使うべからず

jQueryは必要ないよ。 window.location.replace(...) は、HTTPリダイレクトをよくシミュレートできるから。

window.location.replace(...)window.location.hrefを使うよりも優れてる、というのはreplace()は元のページをセッション履歴に残さないから、ユーザーが終わりのないバック・ボタンの失敗に悩まされることはないよ。

もしリンクをクリックするのをシミュレートしたい場合は、 location.href を使う
HTTPリダイレクトをシミュレートする場合は、 location.replaceを使う

例えば:

// HTTPリダイレクトと同様の動作
window.location.replace("http://stackoverflow.com");
//リンクをクリックすると同様の動作
window.location.href = "http://stackoverflow.com";

By Ryan McGeary | 回答日時: Feb 3 ‘09 at 4:24



回答2:

警告:この回答は単に解決策の1つとして提供されているに過だけ。これはjQueryが必要なので、明らかに最善の解決策っていうわけじゃない。代わりに、純粋なJavaScriptでやったほうがいいと思う。

$(location).attr('href', 'http://stackoverflow.com')

By Boris Guéry | 回答日時: Oct 28 ‘09 at 16:35



回答3:

ページをリダイレクトするための標準的な “素の” JavaScriptでの方法:

`window.location.href = ‘newPage.html’;


リダイレクト時にHTTPREFERERを失っている_場合は、以下を参考に


このセクションは HTTP_REFERERを安全なものの1つとして使用する人のためのもの(あんまりいい保護手段じゃないけど)。Internet Explorer 8またはそれ以前のを使用している場合、JavaScriptのページリダイレクションがどうあっても、これらの変数が失われる(location.hrefなど)。

以下では、HTTP_REFERERを失わないようにIE8より以前での実装をやってみる。それ以外の場合は、ほとんどの場合window.location.hrefでいけるはず。

HTTP_REFERER(URLの貼り付け、セッションなど)に対するテストはリクエストがちゃんとしてるか判断するのに手助けに成るはず。(注:これらのリファラを回避する/偽装する方法ももちろん存在する)


簡単なクロスブラウザテストソリューション(Internet Explorer 9以降および他のすべてのブラウザではwindow.location.hrefを)

使用法: redirect('anotherpage.aspx');

function redirect (url) {
var ua = navigator.userAgent.toLowerCase(),
isIE = ua.indexOf('msie') !== -1,
version = parseInt(ua.substr(4, 2), 10);
// Internet Explorer 8以下
if (isIE && version < 9) {
var link = document.createElement('a');
link.href = url;
document.body.appendChild(link);
link.click();
}
//他のすべてのブラウザは標準のwindow.location.hrefを使用可(Internet Explorer 8以下のようにHTTP_REFERERを失うことはない)
else {
window.location.href = url;
}
}

By Mark Pieszak | 回答日時: Jul 27 ‘12 at 14:41



回答4:

これ使いな:

// window.location
window.location.replace('http://www.example.com')
window.location.assign('http://www.example.com')
window.location.href = 'http://www.example.com'
document.location.href = '/path'
// window.history
window.history.back()
window.history.go(-1)
// window.navigate; ONLY for old versions of Internet Explorer
window.navigate('top.jsp')
// たぶんあんまりよくない
self.location = 'http://www.example.com';
top.location = 'http://www.example.com';
// jQuery
$(location).attr('href','http://www.example.com')
$(window).attr('location','http://www.example.com')
$(location).prop('href', 'http://www.example.com')

By Govind Singh | 回答日時: Jan 28 ‘14 at 4:28



回答5:

これならどのブラウザでも動作するよ:

window.location.href = 'your_url';

By Fred | 回答日時: Oct 22 ‘10 at 23:45



Source: How to redirect to another webpage?

共有 コメント