location.search() prende il contenuto di tutto quello chè c'è a partire dal punto interrogativo.
Il substring invece dice prendi dal carattere 1 al carattere 3 della stringa. Se te devi passare un numero di caratteri imprecisato specifica 100 e vai tranquillo
Scusa se mi sono sbagliato a scrivere, ma intendevo dire
location.search().substring(1,100)