2011-09-26 11 views
8

Ho solo bisogno di una semplice funzione che cercherà l'url corrente per una stringa (cioè "natura") e quindi aggiungerà una classe a un oggetto. Continuo a trovare modi per cercare la query, ma voglio cercare l'intero URL. Se possibile, senza jQuery. In caso contrario, jQuery funzionerà.javascript semplice: url di ricerca per stringa, fare qualcosa

risposta

10

È possibile ottenere l'URL con window.location.href, e cercare che più vi piace:

var location = window.location.href; 
if(location.indexOf("whatever") > -1) { 
    //Do stuff 
} 

window.location restituisce un oggetto Location, che ha una proprietà href contenente l'URL completo della pagina.

3

L'approccio più semplice è qualcosa di simile:

window.location.href.indexOf('nature') 

che restituirà -1 se la stringa non viene trovata. In caso contrario, restituisce l'indice della stringa all'interno della stringa dell'URL.

1

Utilizzando regex, in alternativa:

if (window.location.toString().match(/nature/)) { 
    yourobj.className = 'newclass'; 
} 
0

Se siete alla ricerca di un valore nel QueryString, si può provare questo:

var searchIndex = window.location.search.indexOf("nature"); 

In caso contrario, si può fare questo:

var searchIndex = window.location.href.indexOf("nature"); 

Si può anche fare questo:

var searchIndex = window.location.href.search("/nature/"); 

Per verificare se è stata trovata la parola, si può fare questo:

if (searchIndex > -1) 
    //logic here 
0

Penso che questo dovrebbe darvi un buon punto di partenza. JSFiddle è disponibile qui.

<div id="test">Some text</div> 

.red 
{ 
    background-color: #FF0000; 
} 

function handler(url, textToMatch, objectToChange, classToAssign) 
{ 
    if (url.search(textToMatch) != -1) 
    { 
     objectToChange.className = classToAssign; 
    } 
} 

var url = 'http://www.some-place.com&nature'; //window.location.href in your case 
var div = document.getElementById('test'); 

handler(url, 'nature', div, 'red'); 
0

L'hash nell'URL causato problemi per me, così invece ho usato un "?".

Come esempio permette di dire che ho l'URL: http://example.com?someString

Per prima cosa ho recuperate l'URL: "?"

var activeURL = window.location.href; 

Allora prendo tutto dall'indice di + 1 (perché non mi interessa includere "?") In poi.

var activeItem = aactiveURL.substring(activeUrl.indexOf('?') + 1, activeURL.length); 

activeItem sarà "someString"

Problemi correlati