如何将location.href.split('/').pop()
添加到html文档以显示页面名称? (不是整个网址)我想只显示页面名称。
例如: 如果页面是“www.example.com/whaterver/mypage.html” 它会显示“mypage”。
完整的脚本是什么?我是javascript的新手,我在网上找到了这个,但我不知道整个代码。谁能帮助我?
答案 0 :(得分:3)
如果你需要在代码中的其他地方重用它,我会把它粘在一个函数中。只需在页面末尾拆分页面名称并获取第一个元素:
function getPageName(url) {
return url.split('/').pop().split('.')[0];
}
您可以传递实际网址:
var pageName = getPageName('www.example.com/whaterver/mypage.html'); // mypage
或者,使用location.href
:
var pageName = getPageName(location.href); // mypage
如果*.html
没有匹配,我可能也倾向于返回一些东西,所以这里是一个修改过的函数,如果没有匹配则返回null:
function getPageName(url) {
var pageName = url.split('/').pop().split('.')[0];
return pageName.length > 0 ? pageName : null;
}
答案 1 :(得分:0)
注意:如果您像其他解决方案一样执行.split('.')
,您将错过许多网址的基本名称。
您可以找到最后一个正斜杠,并提前搜索第一个.
,?
,&
或#
以捕获不同的网址。这相当于PHP的basename
function getBaseName(url) {
if(!url || (url && url.length === 0)) {
return "";
}
var index = url.lastIndexOf("/") + 1;
var filenameWithExtension = url.substr(index);
var basename = filenameWithExtension.split(/[.?&#]+/)[0];
// Handle '/mypage/' type paths
if(basename.length === 0) {
url = url.substr(0,index-1);
basename = getBaseName(url);
}
return basename ? basename : "";
}
并像这样使用
var url = "http://www.example.com/whaterver/mypage.html";
var file = getBaseName(url);
的
var file = getBaseName(location.pathname); // The current script page
<强>结果:强>
http://www.example.com/whaterver/mypage/ => "mypage"
http://www.example.com/whaterver/mypage.html => "mypage"
http://www.example.com/whaterver/mypage => "mypage"
http://www.example.com/whaterver/mypage/ => "mypage"
http://www.example.com/whaterver/mypage#works => "mypage"
http://www.example.com/whaterver/mypage?ver=1 => "mypage"