admin管理员组文章数量:1134247
I have an html page and I would like inside the html page to retrieve the name of the html document via Javascript. Is that possible?
e.g. name of html document = "indexOLD.html"
I have an html page and I would like inside the html page to retrieve the name of the html document via Javascript. Is that possible?
e.g. name of html document = "indexOLD.html"
- 3 window.location.pathname – user1937198 Commented May 17, 2013 at 14:28
- 2 possible duplicate of Get the page file name from the address bar – j08691 Commented May 17, 2013 at 14:30
11 Answers
Reset to default 178var path = window.location.pathname;
var page = path.split("/").pop();
console.log( page );
Current page: It's possible to do even shorter. This single line sound more elegant to find the current page's file name:
var fileName = location.href.split("/").slice(-1);
or...
var fileName = location.pathname.split("/").slice(-1)
This is cool to customize nav box's link, so the link toward the current is enlighten by a CSS class.
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; }
Try this
location.pathname.substring(location.pathname.lastIndexOf("/") + 1);
location.pathname gives the part (domain not included) of the page URL. To get only the filename you have to extract it using the substring method.
Use: location.pathname
alert(location.pathname);
http://jsfiddle.net/yQqe3/
https://developer.mozilla.org/en-US/docs/DOM/window.location
This will work even if the url ends with a /
:
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);
Use window.location.pathname
to get the path of the current page's URL.
Get Document Name
location.href.split("/").pop().split("?").shift();
With Query String
location.href.split("/").pop()
Single statement that works with trailing slash. If you are using IE11 you'll have to polyfill the filter
function.
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];
This will get the page name also removing the extension (like .html or .php) and eventually all get parameters like (?id=1). If you haven't the extension you can remove the replace()
part, otherwise replace .EXTENSION with your preferred extension.
@Ethan's solution was what I needed but I had to make some changes. Namely, the elements in the toDelete array don't take into account that removing an element from the array segments decrease their number. So here are my two pence:
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);
If you want to check if it has the path "indexOLD.html" at the end of URL, you can use this as well:
if(window.location.pathname.endsWith("indexODL.html")) {
// your code block here.
}
These links can be helpful to learn more on each available global interfaces such as window. https://www.w3schools.com/js/js_window_location.asp, https://www.studytonight.com/javascript/javascript-window-object
本文标签: How can I get the name of an html page in JavascriptStack Overflow
版权声明:本文标题:How can I get the name of an html page in Javascript? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1736811254a1953903.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论