Ao falar sobre questões relacionadas ao caminho, todos pensam em Windows.Location. É verdade que esse objeto fornece muitas informações de caminho, e as usadas incluem:
1.location.href: o URL completo da página atual
2.Location.PathName: o nome do caminho no URL atual
3.Location.Hash: ponto de ancoragem no URL atual
4.location.search: Parâmetros de consulta no URL atual
No entanto, a localização não possui uma propriedade que obtém diretamente o caminho absoluto para o diretório atual (excluindo o nome do arquivo). Por meio do Google, encontrei alguns métodos errados, como separar o URL em uma matriz através de "/", removendo o último item da matriz e depois concatando -o em uma string. Mas se o nome do arquivo não for especificado no URL, o resultado será um grande erro.
De acordo com a experiência anterior de codificação, o atributo href do elemento A sempre retorna um caminho absoluto, o que significa que ele tem a capacidade de converter o caminho relativo em um caminho absoluto. Eu tentei com o código a seguir e acabou sendo:
A cópia do código é a seguinte:
var a = document.createElement ('a');
a.href = './';
alerta (A.Href);
a = nulo;
Infelizmente, esse método não funciona no isto é, 6/7, e quando o alerta (a.href) é executado, o pop-up ainda é "./". Mais tarde, descobri que alguém levantou esse problema no Stackoverflow e a solução também é muito simples. Apenas injete um através do Innerhtml:
A cópia do código é a seguinte:
var div = document.createElement ('div');
div.innerhtml = '<a href = "./"> </a> ";
alerta (div.firstchild.href);
div = null;
Alguém pode perguntar: por que não usar expressões regulares? Minha resposta é: considerando se existe um nome de arquivo, um ponto de ancoragem e um parâmetro de consulta, essa expressão regular pode ser bastante complicada.