如何在JavaScript中获取当前URL的目录部分?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在JavaScript中获取当前URL的目录部分?相关的知识,希望对你有一定的参考价值。
我正在尝试在网页顶部添加“返回目录”按钮,该按钮会将用户重定向到相同的网址,但其中没有文件名。
例如,在查看URL时单击该按钮
http://example.com/somedir/button.html
将你重定向到
所以我创建了以下代码:
<html>
<body>
<input type="button"
value="back to dir"
onclick="top.location=document.URL.replace(/[^\]*$/, '')">
</body>
</html>
但我错过了正确的代码,这将从document.URL
中的当前URL中删除文件名
请问有人有好主意吗?
这是JSFiddle链接:http://jsfiddle.net/afarber/PERBY/
而且我不想一次使用jQuery。
答案
试试这个document.URL.substr(0,document.URL.lastIndexOf('/'))
它肯定会起作用!
另一答案
这个单线也有效:
document.URL.split('/').slice(0, -1).join('/')
另一答案
/* to avoid query parameters, use pathname instead of href */
var l = document.location.pathname.split('/');
l.pop();
console.log(document.location.origin + l.join('/'));
另一答案
以下获取目录,包括最后一个字符是斜杠的情况。
document.URL.replace(//[^/]+/?$/, '');
这有效地说明了以下内容(假设它们可以按此顺序找到)
/
:找一个“/”[^/]+
:找到一个或多个不是“/”的字符/?
:在这些角色后找到一个可选的“/”$
:找到字符串的结尾
然后通过''
删除它们,所以我们只留下目录。
同样,这假设存在标记目录的斜杠,并且这不仅仅是唯一斜杠在http://
内的URL。
另一答案
请尝试以下操作,其中考虑了URL以尾部斜杠结束时和何时不结束时:
var currUrl = document.URL,
newUrl;
if (currUrl.charAt(currUrl.length - 1) === '/') {
newUrl = currUrl.slice(0, currUrl.lastIndexOf('/'));
newUrl = newUrl.slice(0, newUrl.lastIndexOf('/')) + '/';
} else {
newUrl = currUrl.slice(0, currUrl.lastIndexOf('/')) + '/';
}
console.log(newUrl);
以上是关于如何在JavaScript中获取当前URL的目录部分?的主要内容,如果未能解决你的问题,请参考以下文章