我有一个HTML页面,我想通过Javascript在页面内获取HTML文档的名称。这是否可能?
例如,HTML的名称为document = "indexOLD.html"
我有一个HTML页面,我想通过Javascript在页面内获取HTML文档的名称。这是否可能?
例如,HTML的名称为document = "indexOLD.html"
var path = window.location.pathname;
var page = path.split("/").pop();
console.log( page );
当前页面: 即使更短也是可行的。这一行更优雅,可以找到当前页面的文件名:
var fileName = location.href.split("/").slice(-1);
or...
var fileName = location.pathname.split("/").slice(-1)
$('.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; }
试一试
location.pathname.substring(location.pathname.lastIndexOf("/") + 1);
location.pathname返回页面URL的一部分(不包括域名)。要仅获取文件名,您需要使用substring方法进行提取。
location.pathname
alert(location.pathname);
https://developer.mozilla.org/en-US/docs/DOM/window.location
即使url以/
结尾,这也能正常工作:
var segments = window.location.pathname.split('/');
var toDelete = [];
for (var i = 0; i < segments.length; i++) {
if (segments[i].length < 1) {
toDelete.push(i);
}
}
for (var i = 0; i < toDelete.length; i++) {
segments.splice(i, 1);
}
var filename = segments[segments.length - 1];
console.log(filename);
window.location.pathname
获取当前页面 URL 的路径。获取文档名称
location.href.split("/").pop().split("?").shift();
使用查询字符串
location.href.split("/").pop()
单语句,使用尾随斜杠。如果您正在使用IE11,则必须polyfillfilter
函数。
var name = window.location.pathname
.split("/")
.filter(function (c) { return c.length;})
.pop();
const page = location.href.split("/").slice(-1).toString().replace(".EXTENSION", "").split("?")[0];
replace()
部分;否则,请用您喜欢的扩展名替换.EXTENSION。@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);