別のWebページにリダイレクトするにはどうすればよいですか?


7723

jQueryまたは純粋なJavaScriptを使用して、ユーザーをあるページから別のページにリダイレクトするにはどうすればよいですか?


147
私はwindow.location = urlの両方を見続けます。そしてwindow.location.href = url; それらはどう違いますか?彼らは?ところで、私はwindow.location.replace(url)について知りませんでした。いいね。
David M. Miller

100
window.locationwindow.location.href動作の点では、と同じです。window.locationオブジェクトを返します。.hrefが設定されていない場合、window.locationデフォルトでパラメータが変更されます.href。結論:どちらを使用してもかまいません。
ラプター

10
var url = "website name" $(location).attr( 'href'、url);
Mad Scientist

31
@MadScientistこれは、逆の方法です。場所オブジェクトはHTML要素ではなく、jqueryオブジェクトを使用して設定するのは間違っているようです。まっすぐなJSコードがとてもシンプルなのに、なぜそれを使うのでしょうか?
ファンメンデス

1
なぜリダイレクトしたいのですか?ログインフォームを送信しないでください。また、ターゲットページにロジックがない場合でも、フォームを別のページに送信できます。
2014

回答:


14810

jQueryを使用して単にリダイレクトするのではありません

jQueryは不要でありwindow.location.replace(...)、HTTPリダイレクトを最もよくシミュレートします。

window.location.replace(...)良く使うよりあるwindow.location.hrefので、replace()ユーザーは決して終わることのないバックボタンの大失敗で立ち往生しませんつまり、セッション履歴に発信ページを保持しません。

誰かがリンクをクリックするのをシミュレートしたい場合は、 location.href

HTTPリダイレクトをシミュレートしたい場合は、 location.replace

例えば:

// similar behavior as an HTTP redirect
window.location.replace("http://stackoverflow.com");

// similar behavior as clicking on a link
window.location.href = "http://stackoverflow.com";

// Another method for doing redirecting with JavaScript is this:
window.location = "https://stackoverflow.com";

78
送信ボタンの場合はfalseを返します。また、関数の内部
Abhi

134
質問は具体的にはJavaScriptに関するものですが、ユーザーがJavaScriptを無効にしている場合のメタリフレッシュをフェイルバックとして使用できることは注目に値します
Hoppe

22
@NicolòMartiniIf(IE)document.write( "");
ジェフノエル

48
すでにjQueryを使用している場合は、を使用してください$(location).attr('href',url);window.location.href一部のブラウザでは動作が一定していないようですが、実際には、私のバージョンのFirefoxでは完全に機能しません。window.locationIEのバージョンで直接設定できないとのことです。
Noz

8
「優れている」は削除する必要があります。回答の後半で説明するように、最善の解決策は状況依存です。OPは「Javascriptを使用してHTTPリダイレクトをエミュレートするにはどうすればよいですか?」と尋ねません
MadMaardigan

1684

警告:この回答は、可能な解決策としてのみ提供されています。jQueryが必要なため、これは明らかに最良のソリューションではありません。代わりに、純粋なJavaScriptソリューションを使用してください。

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

63
これは、質問に対する文字通りの答えです。すでにJqueryを使用していて、既に読み込まれている場合は、帯域幅の効率が良くなり、もちろんショートカットを使用する方が明確になります
barrymac

27
さらに重要なこととして、これはabsractされているjQueryでこれを行う方法はありますか?これはwindow.location.href = urlの単なるラッパーです。しかし、jQueryに関数がある場合、window.location.href = url; 現在の環境(ブラウザー、OSなど)では機能しませんでした。jQueryコアで補正できますか?
Chris

271
このようにjQueryを数式に強制しても、特にwindow.locationは要素ではないため属性がないため、とんでもないことで無意味です。
Tim Down

10
私は何とかこれはまだ最近のjQueryのバージョンで動作疑う.attr()実際の属性(すなわち設定.setAttribute()
ThiefMaster

156
@deltarayこれは、上記のようにリダイレクトする別の方法ではありません。これは、ロケーションオブジェクトの無意味なラッパーであり、要素でさえありません!これは私にi.stack.imgur.com/ssRUr.gifを
JCM

676

ページをリダイレクトする標準的な「バニラ」JavaScriptの方法

window.location.href = 'newPage.html';

またはもっと簡単に:(windowグローバルなので)

location.href = 'newPage.html';

リダイレクト時にHTTP_REFERER が失われるためにここにいる場合は、読み続けてください。

(そうでなければ、この最後の部分を無視してください)


次のセクションはHTTP_REFERER、多くのセキュリティ対策の1つとして使用しているユーザーを対象としています(ただし、これは優れた保護対策ではありません)。Internet Explorer 8以下を使用している場合、JavaScriptのページリダイレクト(location.hrefなど)を使用すると、これらの変数が失われます。

以下では、IE_8以下の代替を実装して、HTTP_REFERERが失われないようにします。それ以外の場合は、ほとんど常に単純にを使用できますwindow.location.href

テストHTTP_REFERER(URLを貼り付け、セッション、など)ができ、要求が正当であるかどうかを伝えるのに役立ちます。 注: droopのリンクのコメントに記載されているように、これらのリファラーを回避/偽装する方法もあります)


シンプルなクロスブラウザーテストソリューション(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 and lower
    if (isIE && version < 9) {
        var link = document.createElement('a');
        link.href = url;
        document.body.appendChild(link);
        link.click();
    }

    // All other browsers can use the standard window.location.href (they don't lose HTTP_REFERER like Internet Explorer 8 & lower does)
    else { 
        window.location.href = url; 
    }
}

60
脚注:セキュリティ対策としてリファラーをチェックするのはお粗末なソリューションです。duckduckgo.com/?q=referrer+spoofing
droope

リファラーURLにHTTP GETセッションIDがある場合、それを使用してセッションに対して有効性を確認できます。
アンドリューフォックス

@mcpDESIGNSを使用してみましたlocation.assignか?アプリでIE8を使用していますが、HTTP_REFERERヘッダーは失われません。
ブジナス

少なくとも2012年には機能していませんでしたが、IE8のパッチで修正された可能性があります。
Mark Pieszak-Trilon.io 2018年

1
HTTP_REFERERについてのあなたの言及は、私がwindow.openで抱えている問題を理解するのに役立ち、私はここに解決策を見つけました:stackoverflow.com/questions/7580613/…。ところで、IE11で問題が発生しています。
Dov Miller

427

これを行う方法はたくさんあります。

// 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')


// Probably no bueno
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')

8
window.navigate古いIEのみです(Firefox / Chromeはこれをサポートしていません)。すべてのオプションを列挙したい場合は、を忘れないでくださいdocument.location
Rob W

document.location = document.referrer; リストにも追加してください。これはHistory.backのようには機能せず、ページを再度更新します。
Ali Humayun 2015

.attr()はjQuery 3.0.0では機能しません。代わりに.val()を使用してください。
Rivalus 2016年

4
@LéoLamそれがGoogleと呼ばれる検索エンジンがある理由です。:-) Googleでそれぞれを検索して、違いを見つけることができます。ランダムに1つを選択する必要はありません。
私は最も愚かな人です

あなたは、あまりにもドキュメントを見ることができるdeveloper.mozilla.org/en-US/docs/Web/API/Location
ジョンBalvinアリアス

330

これはすべてのブラウザで機能します:

window.location.href = 'your_url';

8
document.location.replace(redirectURL)最初のページをブラウザの履歴に
残し

298

あなたがやろうとしていることについてもう少し説明的であるなら、それは助けになるでしょう。ページングされたデータを生成しようとしている場合、これを行う方法にはいくつかのオプションがあります。直接アクセスできるようにするページごとに個別のリンクを生成できます。

<a href='/path-to-page?page=1' class='pager-link'>1</a>
<a href='/path-to-page?page=2' class='pager-link'>2</a>
<span class='pager-link current-page'>3</a>
...

例の現在のページは、コードとCSSでは異なる方法で処理されることに注意してください。

ページングされたデータをAJAX経由で変更したい場合は、ここでjQueryを使用します。実行することは、異なるページに対応する各アンカータグにクリックハンドラーを追加することです。このクリックハンドラーは、AJAXを介して次のページに移動してフェッチし、新しいデータでテーブルを更新するjQueryコードを呼び出します。以下の例は、新しいページデータを返すWebサービスがあることを前提としています。

$(document).ready( function() {
    $('a.pager-link').click( function() {
        var page = $(this).attr('href').split(/\?/)[1];
        $.ajax({
            type: 'POST',
            url: '/path-to-service',
            data: page,
            success: function(content) {
               $('#myTable').html(content);  // replace
            }
        });
        return false; // to stop link
    });
});

252

私もそれlocation.replace(URL)が最善の方法だと思いますが、リダイレクトについて検索エンジンに通知したい場合(リダイレクトを確認するためにJavaScriptコードを分析しない場合)、rel="canonical"メタタグをWebサイトに追加する必要があります。

HTML更新メタタグを含むnoscriptセクションを追加することも、良い解決策です。このJavaScriptリダイレクトツールを使用してリダイレクトを作成することをお勧めします。また、HTTPリファラーを渡すためのInternet Explorerサポートもあります。

遅延のないサンプルコードは次のようになります。

<!-- Place this snippet right after opening the head tag to make it work properly -->

<!-- This code is licensed under GNU GPL v3 -->
<!-- You are allowed to freely copy, distribute and use this code, but removing author credit is strictly prohibited -->
<!-- Generated by http://insider.zone/tools/client-side-url-redirect-generator/ -->

<!-- REDIRECTING STARTS -->
<link rel="canonical" href="https://yourdomain.com/"/>
<noscript>
    <meta http-equiv="refresh" content="0;URL=https://yourdomain.com/">
</noscript>
<!--[if lt IE 9]><script type="text/javascript">var IE_fix=true;</script><![endif]-->
<script type="text/javascript">
    var url = "https://yourdomain.com/";
    if(typeof IE_fix != "undefined") // IE8 and lower fix to pass the http referer
    {
        document.write("redirecting..."); // Don't remove this line or appendChild() will fail because it is called before document.onload to make the redirect as fast as possible. Nobody will see this text, it is only a tech fix.
        var referLink = document.createElement("a");
        referLink.href = url;
        document.body.appendChild(referLink);
        referLink.click();
    }
    else { window.location.replace(url); } // All other browsers
</script>
<!-- Credit goes to http://insider.zone/ -->
<!-- REDIRECTING ENDS -->

228

しかし、誰かがホームページにリダイレクトしたい場合は、次のスニペットを使用できます。

window.location = window.location.host

開発、ステージング、本番の3つの異なる環境がある場合に役立ちます。

これらの単語をChromeコンソールまたはFirebugのコンソールに入力するだけで、このウィンドウまたはwindow.locationオブジェクトを探索できます。


window.location.replace(window.location.protocol + "//" + window.location.host)
moala

13
さらにシンプル: window.location = '/'
イフタ2014年

213

JavaScriptには、ブラウザーのアドレスバーに表示される現在のURLを取得および変更するための多くのメソッドが用意されています。これらのメソッドはすべて、WindowオブジェクトのプロパティであるLocationオブジェクトを使用します。次のように、現在のURLを持つ新しいLocationオブジェクトを作成できます。

var currentLocation = window.location;

URLの基本構造

<protocol>//<hostname>:<port>/<pathname><search><hash>

ここに画像の説明を入力してください

  1. プロトコル-インターネット上のリソースへのアクセスに使用するプロトコル名を指定します。(HTTP(SSLなし)またはHTTPS(SSLあり))

  2. hostname-ホスト名は、リソースを所有するホストを指定します。たとえば、www.stackoverflow.com。サーバーは、ホストの名前を使用してサービスを提供します。

  3. ポート-インターネットまたはその他のネットワークメッセージがサーバーに到着したときに転送される特定のプロセスを認識するために使用されるポート番号。

  4. パス名-パスは、Webクライアントがアクセスするホスト内の特定のリソースに関する情報を提供します。たとえば、stackoverflow.com / index.html。

  5. query-クエリ文字列はパスコンポーネントに従い、リソースが何らかの目的で(たとえば、検索のパラメーターとして、または処理されるデータとして)利用できる情報の文字列を提供します。

  6. hash-URLのアンカー部分。ハッシュ記号(#)が含まれます。

これらのLocationオブジェクトプロパティを使用すると、これらすべてのURLコンポーネントにアクセスできます

  1. hash -URLのアンカー部分を設定または返します。
  2. host -URLのホスト名とポートを設定または返します。
  3. hostname -URLのホスト名を設定または返します。
  4. href -URL全体を設定または返します。
  5. pathname -URLのパス名を設定または返します。
  6. ポート -Setsまたは戻りポート番号URLのサーバーの用途。
  7. protocol -URLのプロトコルを設定または返します。
  8. search -URLのクエリ部分を設定または返します

ページを変更したり、ユーザーを他のページにリダイレクトしたりする場合は、次のhrefようにLocationオブジェクトのプロパティを使用できます

Locationオブジェクトのhrefプロパティを使用できます。

window.location.href = "http://www.stackoverflow.com";

Location Objectにもこれら3つのメソッドがあります

  1. assign() -新しいドキュメントをロードします。
  2. reload() -現在のドキュメントを再読み込みします。
  3. replace() -現在のドキュメントを新しいドキュメントに置き換えます

assign()およびreplaceメソッドを使用して、これらのような他のページにリダイレクトすることもできます

location.assign("http://www.stackoverflow.com");

location.replace("http://www.stackoverflow.com");

assign()とreplace()の違い-replace()メソッドとassign()method()の違いは、replace()が現在のドキュメントのURLをドキュメント履歴から削除することです。つまり、 「戻る」ボタンで元のドキュメントに戻ります。したがって、新しいドキュメントをロードしたい場合は、assign()メソッドを使用し、元のドキュメントに戻るオプションを提供します。

あなたはこのようにjQueryを使用して位置オブジェクトのhrefプロパティを変更できます

$(location).attr('href',url);

したがって、ユーザーを他のURLにリダイレクトできます。


203

基本的にjQueryは単なるJavaScriptフレームワークであり、次のようなことを行うためのものです、この場合のリダイレクト純粋なJavaScriptを使用するだけでよいので、その場合はバニラJavaScriptを使用する3つのオプションがあります。

1)ロケーション置換の使用と、ページの現在の履歴が置き換えられます。つまり、戻るボタンを使用して元のページに戻ることはできません。

window.location.replace("http://stackoverflow.com");

2)ロケーションの使用 割り当てを使用すると、履歴が保持されます。戻るボタンを使用すると、元のページに戻ることができます。

window.location.assign("http://stackoverflow.com");

3)上記のいずれかの方法を使用することをお勧めしますが、これは純粋なJavaScriptを使用する3番目のオプションになる可能性があります。

window.location.href="http://stackoverflow.com";

また、jQueryで関数を記述して処理することもできますが、これは1行の純粋なJavaScript関数であるためお勧めしません。また、すでにウィンドウスコープにいる場合は、ウィンドウなしで上記のすべての関数を使用window.location.replace("http://stackoverflow.com");できます。location.replace("http://stackoverflow.com");

また、以下の画像にそれらすべてを示しています。

location.replace location.assign


1
後者は私にとって適切に機能しない場合があったので、assign()overの使用href=もお勧めします。
marsze 2018


169

始める前に、jQueryはDOM操作に使用されるJavaScriptライブラリーです。したがって、ページリダイレクトにjQueryを使用しないでください。

Jquery.comからの引用:

古いバージョンのブラウザーではjQueryは大きな問題なく動作する可能性がありますが、jQueryを積極的にテストすることはなく、通常、それらに表示される可能性のあるバグを修正しません。

ここで見つかりました:https : //jquery.com/browser-support/

そのため、jQueryは、下位互換性を確保するための包括的なソリューションではありません。

未加工のJavaScriptを使用する次のソリューションは、すべてのブラウザーで機能し、長い間標準であったため、クロスブラウザーサポート用のライブラリは必要ありません。

このページは3000ミリ秒後にGoogleにリダイレクトされます

<!DOCTYPE html>
<html>
    <head>
        <title>example</title>
    </head>
    <body>
        <p>You will be redirected to google shortly.</p>
        <script>
            setTimeout(function(){
                window.location.href="http://www.google.com"; // The URL that will be redirected too.
            }, 3000); // The bigger the number the longer the delay.
        </script>
    </body>
</html>

さまざまなオプションは次のとおりです。

window.location.href="url"; // Simulates normal navigation to a new page
window.location.replace("url"); // Removes current URL from history and replaces it with a new URL
window.location.assign("url"); // Adds new URL to the history stack and redirects to the new URL

window.history.back(); // Simulates a back button click
window.history.go(-1); // Simulates a back button click
window.history.back(-1); // Simulates a back button click
window.navigate("page.html"); // Same as window.location="url"

置換を使用すると、履歴に存在しなかったかのように、戻るボタンはリダイレクトページに戻りません。ユーザーがリダイレクトページに戻ることができるようにする場合は、window.location.hrefまたはを使用します。window.location.assign。ユーザーがリダイレクトページに戻ることができるオプションを使用する場合は、リダイレクトページに入るとリダイレクトされます。したがって、リダイレクトのオプションを選択するときは、それを考慮してください。ユーザーがアクションを実行したときにのみページがリダイレクトされる状況では、[戻る]ボタンの履歴にページが含まれていても問題ありません。ただし、ページが自動リダイレクトする場合は、replaceを使用して、リダイレクトが送信するページにユーザーが強制的に戻らずに戻るボタンを使用できるようにする必要があります。

次のように、メタデータを使用してページリダイレクトを実行することもできます。

メタリフレッシュ

<meta http-equiv="refresh" content="0;url=http://evil.com/" />

メタの場所

<meta http-equiv="location" content="URL=http://evil.com" />

BASEハイジャック

<base href="http://evil.com/" />

疑いを持たないクライアントを彼らが行きたくないかもしれないページにリダイレクトするためのより多くのメソッドがこのページにあります(それらの1つはjQueryに依存していません):

https://code.google.com/p/html5security/wiki/RedirectionMethods

私も指摘したいのですが、人々は無作為にリダイレクトされることを好みません。絶対に必要な場合にのみ、ユーザーをリダイレクトします。人をランダムにリダイレクトし始めると、二度とあなたのサイトにアクセスすることはありません。

次の段落は架空のものです。

悪意のあるサイトとして報告されることもあります。それが起こった場合、人々があなたのサイトへのリンクをクリックすると、ユーザーのブラウザはあなたのサイトが悪意があると警告するかもしれません。また、サイトでのユーザーエクスペリエンスが悪いと報告された場合、検索エンジンが評価を下げ始める可能性もあります。

リダイレクトに関するGoogleウェブマスターガイドラインを確認してください:https : //support.google.com/webmasters/answer/2721217?hl=ja&ref_topic=6001971

ここにあなたをページから追い出す楽しい小さなページがあります。

<!DOCTYPE html>
<html>
    <head>
        <title>Go Away</title>
    </head>
    <body>
        <h1>Go Away</h1>
        <script>
            setTimeout(function(){
                window.history.back();
            }, 3000);
        </script>
    </body>
</html>

2つのページの例を組み合わせると、再ルーティングの小さなループが発生し、ユーザーがサイトを二度と使用したくないことが保証されます。


5
私は、jQueryに対する彼の要求に対応するために、不要であると述べました。jQueryにはJavaScriptの便利なショートカットがたくさんありますが、リダイレクトのショートカットは必要ありません。jQueryは単なるJavaScriptです。これ以上何もない。リダイレクトを呼び出す通常の方法は、jQueryを使用して関数で機能します。
Patrick W. McMahon


145

あなたはjQueryなしでそれを行うことができます:

window.location = "http://yourdomain.com";

そしてjQueryだけが必要な場合は、次のようにすることができます:

$jq(window).attr("location","http://yourdomain.com");

JQueryは、将来のブラウザーの変更/非推奨を抽象化できるため、間違いなく優れたアイデアです
Epirocks

@Epirocksこのために設計されたjQueryにAPIがあった場合、それは正当な理由である可能性があります(ただし、このAPIが変更されることは疑わしいです)が、ここでの例は、非DOMオブジェクトをラップできるjQueryの機能を誤用しているだけで、一部のメソッドは引き続き機能します。
1j01 19.19.19

「いくつかのメソッドはまだ機能する」という事実は、抽象化することによって私がまさに意味するものです。はい、JQueryがなくてもそれを実行できますが、JQueryがなくても何でも実行できます。
Epirocks

144

これはjQueryで動作します:

$(window).attr("location", "http://google.fr");

機能するからといって、それを実行する必要があるわけではありません。これは設定の周りに無意味間接であるwindow.location
1j01

89

#jQuery / JavaScriptを使用したHTMLページのリダイレクト

このサンプルコードを試してください:

function YourJavaScriptFunction()
{
    var i = $('#login').val();
    if (i == 'login')
        window.location = "login.php";
    else
        window.location = "Logout.php";
}

として完全なURLを指定する場合window.location = "www.google.co.in";


「jQueryの使用」は、ええと、不正確です。また、完全なURLではないため、完全なURLを使用する例は機能しません。プロトコルがないため、相対URLとして解釈されます。
1j01

80

あなたはあなたのコードにこの行を置く必要があります:

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

jQueryがない場合は、JavaScriptを使用してください。

window.location.replace("http://stackoverflow.com");
window.location.href("http://stackoverflow.com");

80

元の質問:「jQueryを使用してリダイレクトする方法は?」したがって、答えはjQuery >>無料の使用例を実装します。


JavaScriptでページにリダイレクトするには:

window.location.href = "/contact/";

または、遅延が必要な場合:

setTimeout(function () {
  window.location.href = "/contact/";
}, 2000);   // Time in milliseconds

jQueryを使用すると、Webページから要素を簡単に選択できます。ページで必要なものをすべて検索し、jQueryを使用して特殊効果を追加したり、ユーザーアクションに反応したり、選択した要素の内部または外部にコンテンツを表示および非表示にしたりできます。これらのタスクはすべて、要素またはイベントを選択する方法を知ることから始まります

$('a,img').on('click',function(e){
  e.preventDefault();
  $(this).animate({
    opacity: 0 //Put some CSS animation here
  }, 500);
  setTimeout(function(){
    // OK, finished jQuery staff, let's go redirect
    window.location.href = "/contact/";
  },500);
});

誰かが10000行のコードでスクリプト/プラグインを書いたと想像してください。jQueryを使用すると、1行または2行でこのコードに接続できます。


JavaScriptヘッダー:代わりに秒単位で時間を計測することは可能ですか?
PythonMaster202

79

それで、問題はリダイレクトページを作る方法であり、ウェブサイトにリダイレクトする方法ではありませんか?

これにはJavaScriptを使用するだけで済みます。以下は、動的リダイレクトページを作成する小さなコードです。

<script>
    var url = window.location.search.split('url=')[1]; // Get the URL after ?url=
    if( url ) window.location.replace(url);
</script>

したがって、このスニペットをredirect/index.htmlWebサイトのファイルに挿入するだけで、そのように使用できます。

http://www.mywebsite.com/redirect?url=http://stackoverflow.com

そして、そのリンクにアクセスすると、自動的にstackoverflow.comにリダイレクトされます。

ドキュメントへのリンク

そして、それはあなたがJavaScriptで単純なリダイレクトページを作る方法です

編集:

注意すべきことも1つあります。私が追加したwindow.location.replace私はそれがリダイレクトページに合うと思うので、私のコードでは、しかし、あなたが使用している場合ことを知っている必要がありますwindow.location.replaceし、あなたがリダイレクトされます、あなたのブラウザの[戻る]ボタンを押したときに、それはなりません、それはなりますバックリダイレクトページになった、と前のページに戻って、この小さなデモを見てください。

例:

プロセス:ストアホーム => リダイレクトページがGoogleに => グーグルを

googleの場合:google => ブラウザの戻るボタン => ストアホーム

したがって、これがあなたのニーズに合っているなら、すべてがうまくいくはずです。ブラウザーの履歴にリダイレクトページを含める場合は、これを置き換えます

if( url ) window.location.replace(url);

if( url ) window.location.href = url;

74

クリック関数に、次を追加します。

window.location.href = "The URL where you want to redirect";
$('#id').click(function(){
    window.location.href = "http://www.google.com";
});


57

jQueryは必要ありません。あなたはこれを行うことができます:

window.open("URL","_self","","")

とても簡単です!

HTTPリクエストを開始する最良の方法は、を使用することdocument.loacation.href.replace('URL')です。


52

最初に正しく書いてください。別のリンクのアプリケーションから別のリンクのアプリケーション内をナビゲートしたい。これがコードです:

window.location.href = "http://www.google.com";

また、アプリケーション内のページをナビゲートする場合は、必要に応じてコードも用意します。



45

JavaScriptとjQueryでは、次のコードを使用して、1つのページを別のページにリダイレクトできます。

window.location.href="http://google.com";
window.location.replace("page1.html");

45

ECMAScript 6 + jQuery、85バイト

$({jQueryCode:(url)=>location.replace(url)}).attr("jQueryCode")("http://example.com")

私を殺さないでください、これは冗談です。それは冗談だ。冗談だよ。

これは、「jQueryを使用する」ソリューションを求めたという意味で「質問への回答を提供」しました。

Ferrybigは明らかに冗談を説明する必要があります(まだ冗談ですが、レビューフォームのオプションは限られていると確信しています)。

他の答えはattr()locationまたはwindowオブジェクトでjQueryを不必要に使用しています。

この答えはそれを悪用しますが、もっとばかげています。これを使用attr()して場所を設定する代わりに、これを使用して場所を設定する関数を取得します。

jQueryCodejQueryが何もないにもかかわらず、関数に名前が付けられ、関数を呼び出すsomethingCode、特に何かが言語でなくても、は恐ろしいことです。

「85バイト」は、Code Golfへの参照です。ゴルフは明らかにコードゴルフ以外でやるべきことではなく、さらにこの答えは明らかに実際にはゴルフされていません。

基本的に、うんざり。


45

JavaScript:

window.location.href='www.your_url.com';
window.top.location.href='www.your_url.com';
window.location.replace('www.your_url.com');

jquery:

var url='www.your_url.com';
$(location).attr('href',url);
$(location).prop('href',url);//instead of location you can use window

1
バニラではなく、jQueryにURLを変数として格納する理由はありますか?
ESR 2017

43

JavaScriptの使用:

方法1:

window.location.href="http://google.com";

方法2:

window.location.replace("http://google.com");

jQueryの使用:

方法1:$(場所)

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

方法2:再利用可能な関数

jQuery.fn.redirectTo = function(url){
    window.location.href = url;
}

jQuery(window).redirectTo("http://google.com");

41

これは時間遅延のリダイレクトです。遅延時間は任意に設定できます。

<!doctype html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Your Document Title</title>
    <script type="text/javascript">
        function delayer(delay) {
            onLoad = setTimeout('window.location.href = "http://www.google.com/"', delay);
        }
    </script>
</head>

<body>
    <script>
        delayer(8000)
    </script>
    <div>You will be redirected in 8 seconds!</div>
</body>

</html>

5
これを行う方が良い:setTimeout(function(){window.location.href = " google.com "}、delay);
dikkini 2014

39

これには主に3つの方法があります。

window.location.href='blaah.com';
window.location.assign('blaah.com');

そして...

window.location.replace('blaah.com');

最後の1つは、検索履歴にリダイレクトされる前に移動したページを保存しないため、従来のリダイレクトに最適です。ただし、JavaScriptでタブを開くだけの場合は、上記のいずれかを使用できます。1

編集:window接頭辞はオプションです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.