it-swarm.com.de

So aktualisieren Sie eine Seite mit jQuery, indem Sie einen Parameter an die URL übergeben

Ich aktualisiere meine Seite mit jQuery:

location.reload();

Dies funktioniert großartig, aber ich möchte die gleiche Seite aktualisieren, indem Sie einen Parameter an die URL übergeben. 

Wie kann ich dies mit jQuery tun?

Ex:

Wenn meine URL www.myweb.com ist, möchte ich dies durch Übergeben eines Parameters wie diesem aktualisieren

  www.myweb.com?single

Vielen Dank

38
KillerFish

Sie sollten dies mithilfe von location.href erreichen können

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

Ich würde REGEX mit .replace so verwenden:

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

Sie können Javascript URLSearchParams verwenden.

var url = new URL(window.location.href);
url.searchParams.set('single','');
window.location.href = url.href;
6
Fábio N Lima

wenn window.location.hash leer ist, können Sie location.href keinen neuen Wert zuweisen, ohne eine korrekte Funktion zu verwenden (zumindest in Chrome getestet).

probiere den window.location.replace:

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

Sie hätten einfach nur folgendes tun können:

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

Im Gegensatz zu den anderen Antworten gibt es keine unnötige Prüfung. Wenn Sie Ihr Projekt ordnungsgemäß entwerfen, überlassen Sie es dem Interface, die Entscheidung zu treffen und diese Anweisung aufzurufen, wenn ein Ereignis ausgelöst wurde. 

Da es nur eine ".com" in Ihrer URL gibt, wird .com durch .com?single ersetzt. Ich habe gerade varAppend hinzugefügt, nur für den Fall, dass Sie das Ändern des Codes in Zukunft mit verschiedenen Arten von URL-Variablen erleichtern möchten.

Noch ein Hinweis: Der .replace fügt den Befehl href hinzu, da href eine Zeichenfolge mit den vollständigen URL-Adressinformationen zurückgibt.

2
sksallaj

Klicken Sie auf diese Links, um diese flexibleren und robusteren Lösungen anzuzeigen. Sie sind Antworten auf eine ähnliche Frage:

Mit diesen können Sie den Parameter programmgesteuert festlegen. Anders als bei den anderen für diese Frage vorgeschlagenen Hacks können URLs, die bereits über einen Parameter verfügen, nicht unterbrochen werden, oder wenn etwas anderes nicht das ist, was Ihrer Meinung nach passieren könnte.

2
Michael Scheper

Zählfehler: Ich bevorzuge window.location = "?single"; oder window.location += "?single";

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

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

Ich verwende Jquery Load, um das zu handhaben, funktioniert für mich hervorragend .. Ich muss mit Argumenten aktualisieren, um die Javascript-Variable in PHP einzufügen

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