Por que estou recebendo ...
TypeError não capturado: string.split não é uma função
... quando eu corro ...
var string = document.location;
var split = string.split('/');
Por que estou recebendo ...
TypeError não capturado: string.split não é uma função
... quando eu corro ...
var string = document.location;
var split = string.split('/');
Respostas:
Mude isso...
var string = document.location;
para isso...
var string = document.location + '';
Isso ocorre porque document.locationé um objeto Location . O padrão .toString()retorna o local em formato de string, então a concatenação irá acionar isso.
Você também pode usar document.URLpara obter uma string.
toString()vez de concatenação hacky?
+ ''é um truque bastante comum para coerção de strings, mas algumas pessoas preferem o toString()método. Eu não consideraria isso mais hacky do que usar o unário +para conversão de número.
parseInt()e parseFloat(). Existe também Number(). O +é mais curto, é claro, mas menos legível para alguém não acostumado a códigos hacky ou menos experiente.
+ ''método não muda nada para mim no navegador Chrome, mas muda toString().
document.location não é uma string.
Você provavelmente está querendo usar document.location.hrefou em document.location.pathnamevez disso.
Na cláusula if, use (). Por exemplo:
stringtorray = "xxxx,yyyyy,zzzzz";
if (xxx && (stringtoarray.split(',') + "")) { ...
document.locationé um objeto. Experimente:var string=document.location.href