Wann würden Sie die location
zu einer URL-Zeichenkette gegenüber der Einstellung location.href
?
location = "http://www.stackoverflow.com";
gegen
location.href = "http://www.stackoverflow.com";
Wann würden Sie die location
zu einer URL-Zeichenkette gegenüber der Einstellung location.href
?
location = "http://www.stackoverflow.com";
gegen
location.href = "http://www.stackoverflow.com";
Sie können Folgendes einstellen location
direkt, weil sie etwas kürzer ist. Wenn Sie sich kurz fassen wollen, können Sie normalerweise das window.
auch.
URL-Zuordnungen zu beiden location.href
y location
sind in JavaScript 1.0, also in Netscape 2, definiert und wurden seitdem in jedem Browser implementiert. Entscheiden Sie sich also für den Browser, der Ihnen am besten gefällt.
Wie bereits gesagt wurde, . location
ist ein ObjektAber diese Person schlug vor, eines von beiden zu verwenden. Es ist jedoch besser, die .href
Version.
Objekte haben Standardeigenschaften, die, wenn nichts anderes angegeben ist, vorausgesetzt werden. Im Fall der location
Objekt hat es eine Eigenschaft namens .href
. Und wenn Sie bei der Zuweisung KEINE Eigenschaft angeben, wird standardmäßig "href" angenommen.
~~
Das ist alles gut und schön, bis sich eine spätere Objektmodellversion ändert und es entweder keine Standardeigenschaft mehr gibt oder die Standardeigenschaft geändert wird. Dann bricht Ihr Programm unerwartet ab.
~~
Wenn Sie meinen href
sollten Sie angeben href
.
Ein Unterschied ist jedoch zu beachten.
Angenommen, Sie möchten eine URL unter Verwendung der aktuellen URL erstellen. Der folgende Code wird Sie tatsächlich umleiten, da er nicht die String.replace
sondern Location.replace
:
nextUrl = window.location.replace('/step1', '/step2');
Die folgenden Codes funktionieren:
// cast to string
nextUrl = (window.location+'').replace('/step1', '/step2');
// href property
nextUrl = window.location.href.replace('/step1', '/step2');
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.