Говоря о проблемах, связанных с пути, все будут думать о Window.location. Это правда, что этот объект предоставляет много информации о пути, а обычно используемые: включают:
1.Location.href: полный URL -адрес текущей страницы
2.Location.PathName: имя пути в текущем URL
3.Location.hash: точка якоря в текущем URL
4.Location.Search: параметры запроса в текущем URL
Тем не менее, местоположение не имеет свойства, которое непосредственно получает абсолютный путь к текущему каталогу (исключая имя файла). Через Google я нашел несколько неправильных методов, таких как разделение URL -адреса на массив через «/», удаление последнего элемента массива, а затем объединение его в строку. Но если имя файла не указано в URL, результатом является большая ошибка.
Согласно предыдущему опыту кодирования, атрибут Href элемента A всегда возвращает абсолютный путь, что означает, что он способен преобразовать относительный путь в абсолютный путь. Я попробовал это со следующим кодом, и это оказалось:
Кода -копия выглядит следующим образом:
var a = document.createElement ('a');
a.href = './';
предупреждение (A.Href);
a = null;
К сожалению, этот метод не работает под старым IE 6/7, а когда будет выполнено оповещение (A.Href), всплывающее окно все еще "./". Позже я обнаружил, что кто -то поднял эту проблему на Stackoverflow, и решение также очень проще. Просто вводите через Innerhtml:
Кода -копия выглядит следующим образом:
var div = document.createElement ('div');
div.innerhtml = '<a href = "./"> </a> ";
оповещение (div.firstchild.href);
div = null;
Кто -то может спросить: почему бы не использовать регулярные выражения? Мой ответ: учитывая, есть ли имя файла, точка привязки и параметр запроса, это регулярное выражение может быть довольно сложным.