我正在创建一个有点大的静态html网站,所以我开始将其分解为模板。我包括一个header.php并遇到了标题问题。我想得到页面的名称,即about.php并在标题<title>Company name - About</title>
中输出
我得到了这样的工作:
var name = location.pathname.split('/').slice(-1)[0];
var title = name.slice(0, -4);
var finalTitle = "Company-" + title;
$(document).attr("title", finalTitle);
除了索引之外没有显示名称,因此效果很好。我尝试按照以下方式编写if语句:
var name;
if (location.pathname.split('/').slice(-1)[0] === ""){
name = "Home";
} else {
name = location.pathname.split('/').slice(-1)[0];
}
现在我不太清楚为什么这不起作用。
答案 0 :(得分:0)
好的,所以经过咨询后可以在评论中遵循我的PHP路线。这不会帮助任何寻找javascript答案的人,但这是我正在使用的,现在有效:
<?php
$title = ucwords(str_replace(array("-","/"),array(" "," - "),substr($_SERVER['REQUEST_URI'], 1)));
$afterTitle = preg_replace('/\\.[^.\\s]{3,4}$/', '', $title);
$final;
if ($afterTitle == "Company - "){
$final = "Company - Home";
} else {
$final = preg_replace('/\\.[^.\\s]{3,4}$/', '', $title);
}
?>
答案 1 :(得分:0)
最简单的方法是:
/*
* This gets the path as an array and tried to get the last subdirectory,
* if isn't return undefined in wich case will set the title to 'Home';
*/
var title = window.location.pathname.replace(/^\/|\/$/g,'').split('/').pop() || 'Home';
//This part assign the title capitalizing it.
$('title').html(title.charAt(0).toUpperCase() + title.slice(1))
对于任何想要添加此功能的人来说,这是一个代码,它为每个子目录的html标记添加类名,并为url的最后一部分添加id。这可以改变o简单用于设置标题,就像原始问题一样。
// Gets the path subdirectories as an array and use the last as the id.
var path = window.location.pathname.replace(/^\/|\/$/g,'').split('/'),
id = path.pop() || 'index';
// Adds the classes and id to the html tag
$('html').attr("class", path.join(' '))
.attr('id', id);
//Assign the title capitalizing the id
$('title').html(id.charAt(0).toUpperCase() + id.slice(1))
此脚本的主要目标是,您可以使用head.js doit等ID来为每个页面添加样式。