web-dev-qa-db-fra.com

JQuery Detect If in Homepage et Homepage PLUS url Variables

J'utilise ce code pour détecter la page d'accueil et cela fonctionne très bien:

var url= window.location.href;
if(url.split("/").length>3){
    alert('You are in the homepage');
}

Mon problème est que je dois également détecter si l'url contient des variables, par exemple:

mysite.com?variable=something

Je dois également détecter si l'URL contient également des variables

Comment puis-je faire ceci?

23
Satch3000

Jetez un oeil à la window.location docs , les informations que vous souhaitez se trouvent dans location.search, donc une fonction pour le vérifier pourrait simplement être:

function url_has_vars() {
   return location.search != "";
}
6
Nelson

En utilisant window.location.pathname pourrait aussi fonctionner:

if ( window.location.pathname == '/' ){
    // Index (home) page

} else {
    // Other page
    console.log(window.location.pathname);
}

Voir info MDN sur window.location.pathname .

63
Bradley Flood

Vous pouvez savoir si vous êtes sur la page d'accueil en comparant href à Origin:

window.location.Origin == window.location.href

Pour obtenir les paramètres de requête, vous pouvez utiliser la réponse ici: Comment puis-je obtenir des valeurs de chaîne de requête en JavaScript?

12
Mataniko

si l'URL actuelle est xxxxx.com quelque chose comme ça, alors xxx

if (window.location.href.split('/').pop() === "") { 
    //this is home page
}
2
benlo335

Pour ce faire, vous avez besoin d'une fonction de recherche de chaîne de requête.

function getParameterByName(name) {  
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");  
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"),  
        results = regex.exec(location.search);  
    return results == null ? "" : decodeURIComponent(results[1].replace(/\+/g, " "));  
}

Avant de rediriger, vérifiez la chaîne de requête et faites correspondre la valeur attendue et redirigez comme exigence.

2
Sudip Pal