2012-01-05 3 views
2

ボタンをクリックすると、ターゲットURLにユーザーをリダイレクトしたいと考えています。ターゲットURLが可変であり、現在のページのURLパラメータ「ソース」から読み取ることがあります。たとえばjQueryがソースURLにリダイレクト

ユーザーは、彼がhttp://www.google.com

にリダイレクトされますボタンをクリックすると、私は、URLに http://w/_l/R/C.aspx?source=http://www.google.com

を持っています

jQueryでどうすればいいですか?あなたはこのように行うことができ、ボタンのクリックハンドラで

答えて

3

まず、urlパラメータを取得する必要があります。ソース これは次のような関数で行うことができます:

function GetParam(name) { 
    return decodeURI(
     (RegExp(name + '=' + '(.+?)(&|$)').exec(location.search)||[,null])[1] 
    ); 
} 

// you can use it like 
var source = GetParam('source'); 
//then 
window.location.href = source 
0

、ちょうどwindow.location.href書き込み= http://www.google.com

+0

-1 OPはURLパラメータ 'source'で定義されたURLにリダイレクトする必要があります。 – jjmontes

-1

<a id="linkId" href=" http://w/_l/R/C.aspx?source=http://www.google.com">Click me</a> 


$('#linkId').click(function(e){ 
    var href=$(this).attr('href'); 
    var url=href.substr(href.indexof('?')) 
    window.location =url; 
    return false; 

}); 
+1

url変数が 'source = http:// www.google.com'に設定されていませんか? – Stefan

+0

-1 @Stefanが述べたように、これは機能しません。これは、URLパラメータを読み取る適切な方法ではありません。 – jjmontes

0

は、URLのparamsを取得:(別のstackoverflowの質問からコピー):

var params= {}; 

document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function() { 
    function decode(s) { 
     return decodeURIComponent(s.split("+").join(" ")); 
    } 

    params[decode(arguments[1])] = decode(arguments[2]); 
}); 

window.location = params['source']; 
+0

$ _GETは、Javascript変数の伝統的に受け入れられている名前ではありません。リクエストパラメータマップはPHPで呼び出されますが、ここでは少し誤解を招くかもしれません。 – jjmontes

+1

私はちょうど私がそれを持っているソースを変更したくなかった()今変更する – redmoon7777

0

変数ソースの値を取得するには、クエリ文字列を解析する必要があります。 jQueryは必要ありません。このような

シンプルな機能で十分です:

function getFromQueryString(ji) { 
    hu = window.location.search.substring(1); 
    gy = hu.split("&"); 
    for (i = 0; i < gy.length; i++) { 
     ft = gy[i].split("="); 
     if (ft[0] == ji) { 
      return ft[1]; 
     } 
    } 
} 

location.href = getFromQueryString("source"); 
+0

これはURIエンコードされた値をデコードしますか? – jjmontes

+0

いいえ、そうではありません。探しているGETパラメータ(この例では "source")をチェックし、適切な値を返すだけで、クエリ文字列を分割します。 – nunespascal

0

を(これはあなたの文書に一度含めるべきである)あなたのURLを解析するためにhere使用このからURL解析コードを使用する:

var urlParams = {}; 
(function() { 
    var e, 
     a = /\+/g, // Regex for replacing addition symbol with a space 
     r = /([^&=]+)=?([^&]*)/g, 
     d = function (s) { return decodeURIComponent(s.replace(a, " ")); }, 
     q = window.location.search.substring(1); 

    while (e = r.exec(q)) 
     urlParams[d(e[1])] = d(e[2]); 
})(); 

次に、これを実行してソースパラメータにリダイレクトします。

window.location.href = urlParams["source"]; 
0

jQueryのフレームワークを使用して、私は安全にURLパラメータを解析し、デコードjQuery URL Parser pluginの使用は、フラグメントを作ると思います...

あなたはこのようにそれを使用することができます:それはあることは明らかであるよう

var source = $.url().param('source'); 
window.location.href = source; 
+0

なぜdownvote? – jjmontes

関連する問題