web-dev-qa-db-ja.com

他のWebページにリダイレクトする方法

JQueryまたは純粋なJavaScriptを使用して、あるページから別のページにユーザーをリダイレクトする方法を教えてください。

7729
venkatachalam

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

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

window.location.replace(...)はセッション履歴に元のページを保存しないため、replace()window.location.hrefを使用するより優れています。

誰かがリンクをクリックするのをシミュレートしたい場合は、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";
13935
Ryan McGeary

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

$(location).attr('href', 'http://stackoverflow.com')
1570
Boris Guéry

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

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

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

location.href = 'newPage.html';

リダイレクト時に losing HTTP_REFERERであるためにここにいる場合は、読み続ける:

(それ以外の場合、この最後の部分は無視します)


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

以下では、HTTP-REFERERが失われないように、IE8&lowerの代替を実装します。それ以外の場合は、ほぼ常に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; 
    }
}

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

// 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')
392
Govind Singh

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

window.location.href = 'your_url';
302
Fred

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

<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
    });
});
280
tvanfosson

私はlocation.replace(URL)が最善の方法であるとも思いますが、あなたがあなたのリダイレクトについて検索エンジンに通知したいならば(リダイレクトを見るためにJavaScriptコードを分析しない)あなたはあなたのウェブサイトにrel="canonical"メタタグを追加するべきです。

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 -->
237

しかし、誰かがホームページにリダイレクトしたい場合、彼は以下のスニペットを使うかもしれません。

window.location = window.location.Host

開発、ステージング、および運用という3つの異なる環境がある場合に役立ちます。

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

212
Nadeem Yasin

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

var currentLocation = window.location;

URLの基本構造

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

enter image description here

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

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

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

  4. pathname - このパスは、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. port - サーバーがURLに使用するポート番号を設定または返します。
  7. protocol - URLのプロトコルを設定または返します。
  8. search - URLのクエリ部分を設定または返します。

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

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

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

Locationオブジェクト これらの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()メソッド()の違いは、replace()が現在のURLを削除することです。文書履歴から文書を削除すると、元の文書に戻るために「戻る」ボタンを使用することはできません。そのため、新しい文書を読み込む場合はassign()メソッドを使用し、元の文書に戻るためのオプションを指定します。

jQuery を使ってlocationオブジェクトのhrefプロパティを変更することもできます。

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

それゆえ、あなたは他のURLにユーザーをリダイレクトすることができます。

199
Nikhil Agrawal

基本的に jQuery は単なる JavaScript フレームワークであり、この場合は redirection のようなことをするために純粋なJavaScriptを使用することができますVanilla JavaScriptを使用して3つのオプションがあります。

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

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

2)location assign を使うと履歴が保存され、戻るボタンを押すと元のページに戻ることができます。

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

3)これらの以前の方法の1つを使用することをお勧めしますが、これは純粋な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

188
Alireza

window.locationを使用して設定することができるはずです。

例:

window.location = "https://stackoverflow.com/";

これは、この件に関する過去の投稿です。

他のWebページにリダイレクトする方法

188
Newse

始める前に、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 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つのページの例を組み合わせると、幼児向けの再ルーティングのループが発生し、ユーザーが自分のサイトを二度と使用したくないことが保証されます。

158
var url = 'asdf.html';
window.location.href = url;
157
user188973

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

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

そしてjQueryだけがほしいと思えばそれからそれをすることができます:

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

これはjQueryと連携します。

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

#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";のように指定したい場合。

84
Sakthi Karthik

あなたはあなたのコードの中にこの行を入れる必要があります:

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

あなたがjQueryを持っていない場合は、JavaScriptを使ってください:

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

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

これにはJavaScriptのみを使用する必要があります。動的リダイレクトページを作成する小さなコードを次に示します。

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

そのため、このスニペットをWebサイト上のredirect/index.htmlファイルに配置したとしましょう。

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

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

ドキュメントへのリンク

そして、それがJavaScriptを使用してSimpleリダイレクトページを作成する方法です

編集:

注意すべき点も1つあります。リダイレクトページに適していると思うので、コードにwindow.location.replaceを追加しましたが、window.location.replaceを使用しているときにリダイレクトされ、ブラウザの戻るボタンを押すとnotはリダイレクトページに戻り、その前のページに戻ります。この小さなデモを見てください。

例:

プロセス:store home=>リダイレクトページをgoogle=>google

Googleの場合:google=>ブラウザの戻るボタン=>store home

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

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

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

あなたのクリック機能では、単に追加:

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

*****当初の質問 - "JQueryを使ってリダイレクトする方法"、HENCE THE ANSWERを実装した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行でこのコードに接続できます。

69
SergeDirect

これを試して:

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

例のコードスニペット

58
tilak

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

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

それはとても簡単です!

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

54
MayorMonty

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

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

そして、あなたがあなたのアプリケーション内のページをナビゲートしたいなら、あなたが望むなら、私もコードを持っています。

51
Anup

あなたはこのようにjQueryでリダイレクトすることができます:

$(location).attr('href', 'http://yourPage.com/');
50
Azam Alvi

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

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

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
42
lalithkumar

ECMAScript 6 + jQuery、85バイト

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

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

これは、「jQueryを使用する」という解決策を求めているという意味で、「問題に対する答えを提供する」ことを意味していました。

Ferrybigは明らかに冗談の説明を必要としている(まだ冗談です、レビューフォームには限られた選択肢しかないと私は確信しています)。

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

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

この関数はjQueryがないにもかかわらずjQueryCodeという名前が付けられています。特にsomethingCodeという関数を呼び出すのは恐ろしいことです。

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

基本的には、しんじます。

42
1j01

これは時間遅延リダイレクションです。あなたはあなたが望むものに遅延時間を設定することができます:

<!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>
39

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

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

そして...

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

最後のものは、それがあなたの検索履歴にリダイレクトされる前に行ったページを保存しないので、伝統的なリダイレクトに最適です。ただし、JavaScriptでタブを開くだけの場合は、上記のいずれかを使用できます。 1

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

36
Ben

私はこのばかげたことをさらに別の新しいjQueryメソッドで更新しなければなりませんでした。

var url = 'http://www.fiftywaystoleaveyourlocation.com';
$(location).prop('href', url);
36
Epiphany

以下のコードをPHP、HTML、またはjQueryセクションの後に書きます。 PHPまたはHTMLセクションの中央にある場合は、<script>タグを使用してください。

location.href = "http://google.com"
35
Bidyut

ページまたはURLをリダイレクトするためのjQueryコード

ファーストウェイ

これはページをリダイレクトするためのjQueryコードです。このコードを$(document).ready()関数に追加したので、ページが読み込まれるとすぐに実行されます。

var url = "http://stackoverflow.com";
$(location).attr('href',url);

変数を使用する代わりに、URLを attr() メソッドに直接渡すこともできます。

セカンドウェイ

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

次のようにコーディングすることもできます(両方とも内部的に同じです)。

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

Window.locationとwindow.location.hrefの違いに興味があるなら、後者が明示的にhrefプロパティを設定しているのに対し、前者は暗黙的にそれを行っていることがわかります。 window.locationはオブジェクトを返すので、デフォルトでは.hrefプロパティを設定します。

第三の方法

JavaScriptを使ってページをリダイレクトする別の方法、window.locationオブジェクトのreplace()メソッドがあります。あなたは新しいURLをreplace()メソッドに渡すことができます、そしてそれはHTTPリダイレクトをシミュレートします。ところで、window.location.replace()メソッドは元のページをセッション履歴に入れないので、戻るボタンの動作に影響を与える可能性があります。いつか、それはあなたが望むものなので、慎重に使ってください。

// Doesn't put originating page in history
window.location.replace("http://stackoverflow.com");

第四の方法

attr() methodのように(jQuery 1.6以降が導入された後)

var url = "http://stackoverflow.com";
$(location).prop('href', url);
32

jQuery では、$(location).attr('href', url)を使用します。

$(document).ready(function(){
    var url = "https://www.youtube.com/watch?v=JwMKRevYa_M";
    $(location).attr('href', url); // Using this
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

raw JavaScript には、それを実現する方法がいくつかあります。

window.location.href="https://www.youtube.com/watch?v=JwMKRevYa_M";

- hrefプロパティを明示的に設定します。

window.location = "http://www.GameOfThrones.com";

- window.locationはオブジェクトを返します。デフォルトでは、オブジェクトは.hrefプロパティを設定します。

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

- 現在のウィンドウの場所を新しいウィンドウに置き換えます。

self.location = "http://www.somewebsite.com";

- 現在のウィンドウ自体の位置を設定します。

これは、JavaScriptが一定時間(3秒)後にリダイレクトする例です。

<script>
    setTimeout(function() {
        window.location.href = "https://www.youtube.com/";
    }, 3000);
</script>
29
Inconnu

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");
28
Kalpesh Panchal

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

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

しかし、あなたはページをリダイレクトするためにjQueryで関数を作ることができます:

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

そしてこの関数を呼び出します。

jQuery(window).redirect("http://stackoverflow.com/")
27
Muhammad Waqas

JQuery関数を使う:

$.extend({
  redirectPost: function(location, args) {
    var form = '';
    $.each(args, function(key, value) {
      form += '<input type="hidden" name="' + key + '" value="' + value + '">';
    });
    $('<form action="' + location + '" method="POST">' + form + '</form>').appendTo($(document.body)).submit();
  }
});

あなたのコードでは、次のように使います。

$.redirectPost("addPhotos.php", {pimreference:  $("#pimreference").val(), tag: $("#tag").val()});
23
stratum

単純にJavaScriptでは、次のようにして特定のページにリダイレクトできます。

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

または

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

または

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

JQueryを使う:

$(window).attr("location","http://www.test.com");
18
vipul sorathiya
<script type="text/javascript">
var url = "https://yourdomain.com";

// IE8 and lower fix
if (navigator.userAgent.match(/MSIE\s(?!9.0)/))
{
    var referLink = document.createElement("a");
    referLink.href = url;
    document.body.appendChild(referLink);
    referLink.click();
}

// All other browsers
else { window.location.replace(url); }
</script>
17
Jaydeep Jadav

Javascriptは非常に広範です。別のページにジャンプしたい場合は、3つの選択肢があります。

 window.location.href='otherpage.com';
 window.location.assign('otherpage.com');
 //and...

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

あなたが他のページに移動したいので、これがあなたの必要条件であるならば、あなたはこれらのうちのどれでも使うことができます。あなたの要求に従って賢く選んだ。

あなたがその概念についてのより多くの知識に興味があるならば。あなたはさらに進むことができます。

window.location.href; returns the href (URL) of the current page
window.location.hostname; returns the domain name of the web Host
window.location.pathname; returns the path and filename of the current page
window.location.protocol; returns the web protocol used (http: or https:)
window.location.assign; loads a new document
16
Must Keem J

これは、10秒のタイムアウトで他のページにリダイレクトするコードです。

<script>
    function Redirect()
    {
        window.location="http://www.adarshkr.com";
    }

    document.write("You will be redirected to a new page in 10 seconds.");
    setTimeout('Redirect()', 10000);
</script>

Location.assignを使ってボタンをクリックすると、このようにすることもできます。

<input type="button" value="Load new document" onclick="newPage()">
<script>
    function newPage() {
        window.location.assign("http://www.adarshkr.com")
    }
</script>
15

次のコードのように使用できます。ここで、getRequestToForwardPageは要求マッピングです( _ url _ )。あなたのURLを使うこともできます。

function savePopUp(){
    $.blockUI();
    $.ajax({
        url:"saveGuestHouse?roomType="+$("#roomType").val(),
        data: $("#popForm").serialize(),
        dataType: "json",
        error: (function() {
            alert("Server Error");
            $.unblockUI();
    }),
    success: function(map) {
        $("#layer1").hide();
        $.unblockUI();
        window.location = "getRequestToForwardPage";
    }
});

これはアプリケーションの同じコンテキスト用です。

Jquery固有のコードのみを使用したい場合は、次のコードが役立ちます。

 $(location).attr('href',"http://www.google.com");
 $jq(window).attr("location","http://www.google.com");
 $(location).prop('href',"http://www.google.com"); 
15
Vinay Sharma
<script type="text/javascript">
    if(window.location.href === "http://stackoverflow.com") {      
         window.location.replace("https://www.google.co.in/");
       }
</script>
13
sneha

以下の方法でページをリダイレクトできます。

  1. 頭の中でメタタグを使うことで - <meta http-equiv="refresh" content="0;url=http://your-page-url.com" />content="0;...は、何秒後にページをリダイレクトする必要があるかに使用されます。

  2. JavaScriptを使用して:window.location.href = "http://your-page-url.com";

  3. JQueryを使って:$(location).attr('href', 'http://yourPage.com/');

13
SantoshK

あなたが使用することができます:

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

replace()メソッドはセッション履歴に元のページを保存しないため、ユーザーは戻るボタンを使用して戻ることはできず、再度リダイレクトされます。注:この場合、ブラウザの戻るボタンは無効になります。

ただし、リンクをクリックするのと同じ効果が必要な場合は、次の手順に従ってください。

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

この場合、ブラウザの戻るボタンがアクティブになります。

13
madhur

つかいます:

function redirect(a) {
    location = a
}

そしてredirect([url]);と呼びます。

暗黙のとおり、hrefの後にlocationは必要ありません。

12
cascading-style

次のようにスクリプトセクションにButton clickイベントのUrl.Actionを記述できます。

function onclick() {
        location.href = '@Url.Action("Index","Home")';
    }
12
wild coder

シングルページアプリケーション 、同じアプリケーションルート内

window.location.pathname = '/stack';

JavaScript:

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

jQuery:

$(location).attr('href', "http://www.stack.com");
$(window).attr('location', "http://www.stack.com");

Angular 4

import { Router } from '@angular/router';
export class NavtabComponent{
    constructor(private router: Router) {
    }
    this.router.navigate(['bookings/taxi']);
}
12
HD..

別の方法を追加します。

サイトの特定のページやリンクを別のページにリダイレクトするには、次のコードを追加するだけです。

<script>
    if(window.location.href == 'old_url')
    {
        window.location.href="new_url";
    }

    // Another URL redirect
    if(window.location.href == 'old_url2')
    {
        window.location.href="new_url2";
    }
</script>

実生活の例としては、

<script>
    if(window.location.href == 'https://old-site.com')
    {
        window.location.href="https://new-site.com";
    }

    // Another URL redirect
    if(window.location.href == 'https://old-site.com/simple-post.html')
    {
        window.location.href="https://new-site.com/simple-post.html";
    }
</script>

この単純なコードを使用すると、フルサイトまたは任意の単一ページをリダイレクトできます。

11

これは実装がとても簡単です。あなたが使用することができます:

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

これは前のページの歴史を思い出すでしょう。そのため、ブラウザの戻るボタンをクリックして戻ることができます。

または

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

この方法は前のページの履歴を記憶しません。この場合、戻るボタンは無効になります。

11

純粋なJavaScriptを使用したい場合は、document.location.href = "https://example.com"またはwindow.location.href = "https://example.com"を使用するとFirefoxで互換性の問題が発生することがわかりました。代わりに使用してみてください。

location.href = "https://example.com";
location.replace("http://example.com");

私の場合はこの問題を解決しました。がんばろう!

私はすでにJavaScriptのredirect()関数を使っています。それは働いています。

<script type="text/javascript">
    $(function () {
        //It's similar to HTTP redirect
        window.location.replace("http://www.Technomark.in");

        //It's similar to clicking on a link
        window.location.href = "Http://www.Technomark.in";
    })
</script>
10
user1012506
  1. location.assign():

    パスを渡すことによってルートパスを割り当てるには.. Assign はパスが割り当てられた後でもあなたに歴史を与えます。

    使用方法: valueを渡してください。

    例えば、次のとおりです。 location.assign("http://google.com")

    Enter image description here

  2. location.href

    定義することができますそれへのパスを与える...そしてそれが設定したらそれは与えられたパスにリダイレクトされます、そしてそれは歴史を保つでしょう...

    使用方法: valueを代入してください。

    例: location.href = "http://google.com"

  3. location.replace():

    履歴を残したくない場合は、パスを置き換えることをお勧めします。パスを変更した後は、履歴は表示されません。

    使用方法: valueを渡してください。

    例えば、次のとおりです。 location.replace("http://google.com")

    Enter image description here


assign()hrefは似ており、どちらも歴史を持つことができます。 assignは値を渡すことによって機能し、hrefは代入することによって機能します。

次のように割り当てることで、jQueryを使わなくてもJavaScript自体を使ってそれを実現できます。

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

以下のようにjQueryを使っても同じことができます。それは上と全く同じようにします、

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

あなたは簡単に両者の違いを理解することができます...

これがLocationオブジェクトです。

Location API from chrome

10

単純に同じアプリ内のルートにリダイレクトしたい場合

window.location.pathname = '/examplepath'

行く方法です。

9
RuNpiXelruN

location.replace()を使用すると、前のページの履歴を保存せずにリダイレクトします。これはフォームが送信されたときに使うほうがいいです。しかし、あなたがあなたの歴史を保存したいときは、location.href=//pathを使わなければなりません。

例:

// form with steps
document.getElementById('#next').onclick = function() {
   window.location.href='/step2' // iteration of steps;
}

// go to next step
document.getElementById("#back').onclick = function() {
   window.history.back();
}

// finish 
document.getElementById("#finish').onclick = function() {
   window.location.href = '/success';
}

// on success page
window.onload = function() {
    setTimeout(function() {
       window.location.replace('/home'); // i can't go back to success page by pressing the back button
    },3000);
}
8
Andrei Todorut

クライアント側からリダイレクトするためのあらゆる方法

<!DOCTYPE html>
<html>
    <head>
        <title>JavaScript and jQuery example to redirect a page or URL </title>
    </head>
    <body>
        <div id="redirect">
            <h2>Redirecting to another page</h2>
        </div>

        <script src="scripts/jquery-1.6.2.min.js"></script>
        <script>
            // JavaScript code to redirect a URL
            window.location.replace("http://stackoverflow.com");
            // window.location.replace('http://code.shouttoday.com');

            // Another way to redirect page using JavaScript

            // window.location.assign('http://code.shouttoday.com');
            // window.location.href = 'http://code.shouttoday.com';
            // document.location.href = '/relativePath';

            //jQuery code to redirect a page or URL
            $(document).ready(function(){
                //var url = "http://code.shouttoday.com";
                //$(location).attr('href',url);
                // $(window).attr('location',url)
                //$(location).prop('href', url)
            });
        </script>
    </body>
</html>
8
Zigri2612

jQuery/JavaScriptを使用してユーザーをリダイレクトする

JQueryまたはJavaScriptでlocationオブジェクトを使用することによって、ユーザーを別のWebページにリダイレクトできます。

jQueryでは

あるページから別のページにユーザーをリダイレクトするためのコードは次のとおりです。

var url = 'http://www.example.com';
$(location).attr('href', url);

JavaScriptの場合

あるページから別のページにユーザーをリダイレクトするためのコードは次のとおりです。

var url = 'http://www.example.com';
window.location.href = url;

または

var url = 'http://www.example.com';
window.location = url;
6
devst3r

これが私の使い方です。

   window.location.replace('yourPage.aspx');   
   // If you're on root and redirection page is also on the root

   window.location.replace(window.location.Host + '/subDirectory/yourPage.aspx');

   // If you're in sub directory and redirection page is also in some other sub directory.
5
dnxit

私の実務経験では、JavaScriptをリダイレクトするほうがはるかに優れています。

場所を変更する方法によって異なります。あなたのウェブサイトをユーザー履歴に記録したい場合は、window.location.href='ur website';を使用してください。それ以外の場合は、履歴にログインせずにそれを実行するには、window.location.replace("your website");を使用します。

4
Omkaar.K