Warum bekomme ich ...
Nicht erfasster TypeError: string.split ist keine Funktion
... wenn ich renne ...
var string = document.location;
var split = string.split('/');
Warum bekomme ich ...
Nicht erfasster TypeError: string.split ist keine Funktion
... wenn ich renne ...
var string = document.location;
var split = string.split('/');
Antworten:
Ändere das...
var string = document.location;
dazu ...
var string = document.location + '';
Dies liegt daran, dass document.locationes sich um ein Standortobjekt handelt . Die Standardeinstellung .toString()gibt den Speicherort in Zeichenfolgenform zurück, sodass die Verkettung dies auslöst.
Sie können auch document.URLeine Zeichenfolge abrufen.
toString()statt einer hackigen Verkettung anzurufen?
+ ''ist ein ziemlich häufiger Trick für Zwang, aber einige Leute bevorzugen die toString()Methode. Ich würde es nicht als hackiger betrachten, als das Unäre +für die Zahlenkonvertierung zu verwenden .
parseInt()und parseFloat(). Es gibt auch Number(). Das +ist natürlich kürzer, aber weniger lesbar für jemanden, der nicht an Hacky-Code gewöhnt ist oder weniger Erfahrung hat.
+ ''Methode ändert für mich in Chrome Browser nichts, toString()tut es aber .
Führen Sie dies aus
// you'll see that it prints Object
console.log(typeof document.location);
du willst document.location.toString()oderdocument.location.href
document.location ist keine Zeichenfolge.
Sie möchten wahrscheinlich document.location.hrefoder document.location.pathnamestattdessen verwenden.
In Klausel wenn verwenden (). Beispielsweise:
stringtorray = "xxxx,yyyyy,zzzzz";
if (xxx && (stringtoarray.split(',') + "")) { ...
document.locationist ein Objekt. Versuchen Sie:var string=document.location.href