Wenn Sie über Probleme im Zusammenhang mit Pfaden sprechen, wird jeder über Windows.location nachdenken. Es ist wahr, dass dieses Objekt viele Pfadinformationen liefert und die häufig verwendeten enthalten sind:
1.Location.href: Die vollständige URL der aktuellen Seite
2.Location.PathName: Der Pfadname in der aktuellen URL
3.Location.hash: Ankerpunkt in der aktuellen URL
4.Location.Search: Abfrageparameter in der aktuellen URL
Der Ort verfügt jedoch nicht über eine Eigenschaft, die den absoluten Pfad zum aktuellen Verzeichnis direkt erhält (ohne den Dateinamen). Über Google fand ich einige falsche Methoden, z. Wenn der Dateiname in der URL jedoch nicht angegeben ist, ist das Ergebnis ein großer Fehler.
Nach früheren Codierungserfahrungen gibt das HREF -Attribut des A -Elements immer einen absoluten Pfad zurück, was bedeutet, dass es die Fähigkeit hat, den relativen Pfad in einen absoluten Pfad umzuwandeln. Ich habe es mit dem folgenden Code ausprobiert und es stellte sich heraus, dass es sich legte:
Die Codekopie lautet wie folgt:
var a = document.createelement ('a');
a.href = './';
Alarm (A.href);
a = null;
Leider funktioniert diese Methode nicht unter dem alten IE 6/7, und wenn Alert (a.href) ausgeführt wird, ist das Popup immer noch "./". Später stellte ich fest, dass jemand dieses Problem auf Stackoverflow aufgeworfen hat und die Lösung auch sehr einfach ist. Injizieren Sie einfach eine durch Innerhtml:
Die Codekopie lautet wie folgt:
var div = document.createelement ('div');
div.innerhtml = '<a href = "./"> </a> ";
Alert (Div.Firstchild.href);
div = null;
Jemand kann fragen: Warum nicht reguläre Ausdrücke verwenden? Meine Antwort lautet: Wenn man bedenkt, ob es einen Dateinamen, einen Ankerpunkt und einen Abfrageparameter gibt, kann dieser reguläre Ausdruck sehr kompliziert sein.