我首先获得此代码以获取当前页面slug:
var site_url = document.location.origin;
var slug = href.replace(site_url,'').substring(1).slice(0,-1);
在此之后我使用函数将slug大写之前放入
function CapitalFirstLetter(string)
{
return string.charAt(0).toUpperCase() + string.slice(1);
}
var page_title = CapitalFirstLetter(slug);
最后,我正在努力让它在ajax上取得成功:
$.ajax({
url: href,
success: function(data) {
// update the page title
document.title = page_title;
}
});
但没有任何反应
我最终使它工作,因为我正在通过ajax加载页面,我决定更改标题而不是ajax成功,但在每个页面内添加这样的脚本
$(function() {
var loc = document.location.href;
var site_url = document.location.origin;
var slug = loc.replace(site_url,'').substring(1).slice(0,-1);
var page_title = CapitalFirstLetter(slug);
document.title = page_title;
});
现在效果很好,但我不确定这个好方案是否合适?
答案 0 :(得分:1)
$.ajax({
url: href,
success: function(data) {
// update the page title
$("title").text(page_title);
}
});
参考 text()
答案 1 :(得分:0)
我认为问题是你的ajax调用是在set_title-variable设置之前完成的,请参阅此fiddle作为演示。
您可以修复它,例如使用
延迟ajax调用setTimeout(function() {
$.ajax({
url: href,
success: function(data) {
// update the page title
document.title = page_title;
}
});
}, 100);
或者使用ajax-functions beforesend生成标题:
var page_title;
$.ajax({
url: href,
beforeSend: function() {
page_title = ... // generate the title...
},
success: function(data) {
// update the page title
document.title = page_title;
}
});