web-dev-qa-db-ja.com

URLにパラメーターを渡すことでjQueryでページを更新する方法

JQueryを使用してページを更新しています。

location.reload();

これはうまく機能していますが、URLにパラメーターを渡すことで同じページを更新したいと思います。

JQueryを使用してこれを行うにはどうすればよいですか?

例:

URLがwww.myweb.comの場合、次のようなパラメーターを渡すことでこれを更新します

  www.myweb.com?single

ありがとうございました

39
KillerFish

Location.hrefを使用してこれを達成できるはずです。

if(window.location.hostname == "www.myweb.com"){
   window.location.href = window.location.href + "?single";
}
46
Mark Coleman

私は [〜#〜] regex [〜#〜] with .replace このような:

window.location.href = window.location.href.replace( /[\?#].*|$/, "?single" );
48

JavaScript RLSearchParams を使用できます。

var url = new URL(window.location.href);
url.searchParams.set('single','');
window.location.href = url.href;

[更新]:IEサポートが必要な場合、このスレッドを確認してください:

SCRIPT5009: 'URLSearchParams'はIE 11 で未定義です

IEサポートについて話してくれた@ john-mに感謝します。

11
Fábio N Lima

if window.location.hashが空の場合、正しい関数を使用せずにlocation.hrefに新しい値を割り当てることはできません(少なくともchromeでテスト済み)。

window.location.replace

if (!window.location.hash) 
    {
        window.location.replace(window.location.href + "?single")
    } 
3
Eyal Ch

簡潔なカウント:window.location = "?single";またはwindow.location += "?single";

3
Ori

あなたは単にやっただけかもしれません:

var varAppend = "?single";
window.location.href = window.location.href.replace(".com",".com" + varAppend);

提供される他の回答とは異なり、不必要な条件チェックはありません。プロジェクトを適切に設計すれば、イベントがトリガーされるたびに、インターフェイスで意思決定を行い、そのステートメントを呼び出すことができます。

URLには「.com」が1つしか含まれないため、.com with .com?single。さまざまな種類のurl変数を使用して将来コードを変更しやすくするために、varAppendを追加しました。

もう1つの注意:.replaceはhrefに完全なURLアドレス情報を含む文字列を返すため、hrefに追加することで機能します。

2
sksallaj

これらのリンクをクリックして、これらのより柔軟で堅牢なソリューションをご覧ください。彼らは同様の質問に対する答えです:

これらにより、プログラムでパラメーターを設定することができ、この質問で提案されている他のハックとは異なり、既にパラメーターを持っているURLについて、または他の何かがあなたが考えていたものとまったく違う場合は壊れません。

2
Michael Scheper
var singleText = "single";
var s = window.location.search;

if (s.indexOf(singleText) == -1) {
    window.location.href += (s.substring(0,1) == "?") ? "&" : "?" + singleText;
}
1
Kris Ivanov

私はこれを処理するためにJquery Loadを使用していますが、私にとってはうまくいきます。プロジェクトからコードをチェックアウトします。 Javascript変数をphpに入れるために引数で更新する必要があります

if (isset($_GET['language'])){
    $language = $_GET['language'];
}else{
    echo '<script>';    
    echo '  var userLang = navigator.language || navigator.userLanguage;';
    echo '  if(userLang.search("zh") != -1) {';
    echo '      var language = "chn";';
    echo '  }else{';
    echo '      var language = "eng";';
    echo '  }';
    echo '$("html").load("index.php","language=" + language);';
    echo '</script>';
    die;
}
0