dabei substring-in-Fenster.Lage.hash
Irgendwie Fenster.Lage.hash wird unterschiedlich gehandhabt in den verschiedenen Browsern. Wenn ich eine url wie folgt
http://maps-demo.bytecraft.com.my/postdemo/parcel
#parcel/history/1?as=json&desc[]=ctime&desc[]=history_id
und ich bin daran interessiert, die Werte zwischen #Paket/Geschichte/und ?als=json ... so ist der substring-Anweisung würde etwas ähnliches wie
window.location.hash.substring(14, window.location.hash.search(/\?/g));
Habe ich, dass in firefox 3.0.10 ohne Probleme, aber die gleichen substring Anweisung funktioniert nicht in Opera 9.60.
Nachdem auf die schnelle etwas suchen fand ich einige interessante info, dass kann Hilfe
Wenn der hash " - Teil der URL enthält codierte Zeichen (siehe Core_JavaScript_1.5_Reference:Global_Functions:alsterrunde), hash gibt den dekodierten URL-Teil. Dies ist ein bug in Firefox. href -, such-und Pfadnamen zurück die richtige, codierte URL-Teile.
- Oper gibt nur #Paket/Geschichte/1 und ignoriert die restlichen string, und dies ist der Hauptgrund, warum meine substring Anweisung ist fehlgeschlagen...
Gibt es eine bessere Möglichkeit, wenn ich möchte, zu extrahieren, den string zwischen #Paket/Geschichte/und ?als=json.... neben den regulären Ausdruck?!
- Nie gesehen, Anker-tags missbraucht worden, dass Größe vor, wow
- heh Recht 🙂 - darauf hinzuweisen,
- heh, Sie werden erstaunt sein zu sehen, vmware server 2.0 verwendet hash, der so aussieht 127.0.0.1:8333/ui/#{e:%22HostSystem/ha-host%22,w:{t:true,i:0}}
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
Dies entspricht der folgenden Teile der hash:
Dies ist meine aktuelle Lösung für das problem
Sie konnte einfach
window.location.href
statt hash-aber warum nicht regex? Zuverlässiger und zukunftssicherer als eine Methode basiert auf substringing von Charakter N. Versuchen:Regex ist nicht die richtige Antwort die ganze Zeit, aber manchmal ist es genau das richtige.
Edit: aufgeräumt-Methode Kapselung
Könnten Sie auch tun :
var whatYouWant = Fenster.Lage.hash.split('?')[0].substring(14);