Cuando se habla de problemas relacionados con la ruta, todos pensarán en la ubicación de la ventana. Es cierto que este objeto proporciona mucha información de ruta, y los usados comúnmente incluyen:
1.location.href: la URL completa de la página actual
2.Location.pathName: el nombre de ruta en la URL actual
3.location.hash: punto de anclaje en la URL actual
4.Location.Search: Parámetros de consulta en la URL actual
Sin embargo, la ubicación no tiene una propiedad que obtenga directamente la ruta absoluta al directorio actual (excluyendo el nombre del archivo). A través de Google, encontré algunos métodos incorrectos, como separar la URL en una matriz a través de "/", eliminar el último elemento de la matriz y luego concatenarla en una cadena. Pero si el nombre del archivo no se especifica en la URL, el resultado es un gran error.
Según la experiencia de codificación anterior, el atributo HREF del elemento A siempre devuelve una ruta absoluta, lo que significa que tiene la capacidad de convertir la ruta relativa en una ruta absoluta. Lo probé con el siguiente código y resultó ser:
La copia del código es la siguiente:
var a = document.createElement ('a');
a.href = './';
alerta (a.href);
a = nulo;
Desafortunadamente, este método no funciona bajo el antiguo IE 6/7, y cuando se ejecuta alerta (a.href), la ventana emergente es todavía "./". Más tarde, descubrí que alguien planteó este problema en StackOverflow, y la solución también es muy simple. Solo inyectar un a través de Innerhtml:
La copia del código es la siguiente:
var div = document.createElement ('div');
div.innerhtml = '<a href = "./"> </a> ";
alerta (div.firstchild.href);
div = nulo;
Alguien puede preguntar: ¿por qué no usar expresiones regulares? Mi respuesta es: teniendo en cuenta si hay un nombre de archivo, un punto de anclaje y un parámetro de consulta, esta expresión regular puede ser bastante complicada.