我有一个html页面,我想在html页面内 检索html文档的名称 通过Javascript。这可能吗?
e.g。 html document = "indexOLD.html"
答案 0 :(得分:106)
var path = window.location.pathname;
var page = path.split("/").pop();
console.log( page );
答案 1 :(得分:24)
当前页面:可以做得更短。这条单线声音更加优雅,可以找到当前页面的文件名:
var fileName = location.href.split("/").slice(-1);
...或
var fileName = location.pathname.split("/").slice(-1)
这很容易定制导航框的链接,因此当前的链接是由CSS类启发的。
<强> JS:强>
$('.menu a').each(function() {
if ($(this).attr('href') == location.href.split("/").slice(-1)){ $(this).addClass('curent_page'); }
});
<强> CSS:强>
a.current_page { font-size: 2em; color: red; }
答案 2 :(得分:8)
试试这个
location.pathname.substring(location.pathname.lastIndexOf("/") + 1);
location.pathname给出页面url的部分(不包括域)。要获取文件名,您必须使用子字符串方法将其公开。
答案 3 :(得分:4)
使用:location.pathname
alert(location.pathname);
https://developer.mozilla.org/en-US/docs/DOM/window.location
答案 4 :(得分:3)
使用window.location.pathname
获取当前页面网址的路径。
答案 5 :(得分:1)
获取文档名称
location.href.split("/").pop().split("?").shift();
带查询字符串
location.href.split("/").pop()
答案 6 :(得分:0)
使用尾部斜杠的单个语句。如果您使用的是IE11,则必须 filter
功能。
var name = window.location.pathname
.split("/")
.filter(function (c) { return c.length;})
.pop();
答案 7 :(得分:0)
@Ethan 的解决方案正是我所需要的,但我不得不做出一些改变。即, toDelete 数组中的元素没有考虑从数组段中删除元素会减少它们的数量。所以这是我的两便士:
let segments = window.location.pathname.split('/');
let toDelete = [];
for (let i = 0; i < segments.length; i++) {
if (segments[i].length < 1) {
toDelete.push(i);
}
for (let i = 0; i < toDelete.length; i++ ) {
segments.splice(toDelete[i], 1);
for (let j = i; j < toDelete.length; j++ ) {
(toDelete[j])--;
}
}
let filename = segments[segments.length - 1];
console.log(filename);
答案 8 :(得分:0)
const page = location.href.split("/").slice(-1).toString().replace(".EXTENSION", "").split("?")[0];
这将获得页面名称,同时删除扩展名(如 .html 或 .php)并最终获得所有参数,如 (?id=1)。如果您没有扩展名,您可以删除 replace()
部分,否则将 .EXTENSION 替换为您首选的扩展名。