2 Stimmen

URL-Hash-Unregelmäßigkeiten

Ich habe ein seltsames Verhalten in JS bemerkt

window.location.hash = '';
var hash = window.location.hash;
alert(hash + ' = ' + hash.length);
//outputs: ' = 0'
window.location.hash = '#';
hash = window.location.hash;
alert(hash + ' = ' + hash.length);
//outputs: ' = 0'
window.location.hash = '_';
hash = window.location.hash;
alert(hash + ' = ' + hash.length);
//outputs: '_ = 2'

Im Grunde möchte ich drei Bedingungen auslösen

  1. kein Hash
  2. nur Hash
  3. Hash mit Text

aber es scheint, dass JS keinen Unterschied zwischen example.com/ und example.com/# sieht. Außerdem kann ich nicht herausfinden, wie ich den Hash vollständig entfernen kann.

Irgendwelche Hilfe?

2voto

mway Punkte 4286
  1. Sobald der Hashwert festgelegt ist, kann er nicht komplett entfernt werden (zum Beispiel das Entfernen des #-Zeichens) ohne eine Seitenaktualisierung zu verursachen; dies ist normales Verhalten.

  2. Das Setzen eines leeren/null Hashwerts und das Setzen des Hashwerts auf den Standard-Hashwert (#) werden gleich behandelt; das ist nur internes Verhalten. Ich bin mir nicht sicher, ob alle Browser damit konsistent umgehen, aber meines Wissens ist das der Fall.

Letztendlich, wenn Sie den Hashwert komplett entfernen möchten, müssten Sie document.location.href = document.location.href ausführen, um die Seite neu zu laden (window.location.reload() würde den Hashwert beibehalten).

CodeJaeger.com

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.

Powered by:

X