Dlaczego dostaję ...
Uncaught TypeError: string.split nie jest funkcją
... kiedy biegnę ...
var string = document.location;
var split = string.split('/');
Dlaczego dostaję ...
Uncaught TypeError: string.split nie jest funkcją
... kiedy biegnę ...
var string = document.location;
var split = string.split('/');
Odpowiedzi:
Zmień to...
var string = document.location;
do tego...
var string = document.location + '';
Dzieje się tak, ponieważ document.locationjest to obiekt lokalizacji . Wartość domyślna .toString()zwraca lokalizację w postaci ciągu, więc konkatenacja to wyzwoli.
Możesz również użyć, document.URLaby uzyskać ciąg.
toString()zamiast hakerskiej konkatenacji?
+ ''Jest dość powszechne trick strun przymusu, ale niektórzy ludzie wolą toString()metodę. Nie uważałbym tego za bardziej hakerskie niż użycie jednostki jednoargumentowej +do konwersji liczb.
parseInt()i parseFloat(). Jest też Number(). +Jest krótszy oczywiście, ale mniej czytelny dla kogoś nie jest używany do kodu hacky lub mniej doświadczonych.
+ ''metoda nie robi nic dla mnie zmienić w przeglądarce Chrome, ale toString()nie.
Uruchom to
// you'll see that it prints Object
console.log(typeof document.location);
chcesz document.location.toString()lubdocument.location.href
document.location nie jest ciągiem.
Prawdopodobnie chcesz użyć document.location.hreflub document.location.pathnamezamiast tego.
W klauzuli if użyj (). Na przykład:
stringtorray = "xxxx,yyyyy,zzzzz";
if (xxx && (stringtoarray.split(',') + "")) { ...
document.locationjest przedmiotem. Spróbuj:var string=document.location.href