2011-11-18 6 views
15

Estoy tratando de hacer que mi página realice una acción solo si ve que un parámetro en particular está presente en la url.use javascript para encontrar el parámetro en url y luego aplique si entonces la lógica

que esencialmente quiere que el código javascript para hacer esto:

consideran una página de ejemplo como: http://www.example.com?track=yes

Si se carga una página que contiene el parámetro 'pista' dentro de la URL, 'existe pista' imprimir , de lo contrario, si el parámetro 'pista' no existe impresión 'vía no existe'

+0

ParseURI !! http://blog.stevenlevithan.com/archives/parseuri – dm03514

Respuesta

35

esto debería funcionar:

if (window.location.search.indexOf('track=yes') > -1) { 
    alert('track present'); 
} else { 
    alert('track not here'); 
} 
+0

gracias - funciona como un encanto –

0

Puede utilizar el window.location.search propiedad:

if(/(^|&)track(&|$)/.test(window.location.search.substring(1))) { 
    alert('track exists!'); 
} else { 
    alert('it doesn\'t...'); 
} 
4

uso algo así como la función de la respuesta de Artem en este SO post:

if (getParameterByName('track') != '') { 
    alert ('run track'); 
} 
1

no es difícil para dividir la cadena de consulta para encontrar los bits relevantes:

var path = location.substr(1), // remove ? 
    queryBits = path.split('&'), 
    parameters = {}, 
    i; 

for (i = 0 ; i < queryBits.length ; i++) { 
    (function() { // restrict keyval to a small scope, don't need it elsewhere 
     var keyval = queryBits[i].split('='); 
     parameters[decodeURIComponent(keyval[0])] = decodeURIComponent(keyval[1]); 
    }()); 
} 

// parameters now holds all the parts of the URL as key-value pairs 

if (parameters.track == 'yes') { 
    alert ('track exists'); 
} else { 
    alert ("it doesn't"); 
} 
Cuestiones relacionadas