当我通过 AJAX 加载新页面时,我当然需要更新 HTML 标题以匹配新页面。下面的代码是我在过去的项目中成功使用的代码,但由于某种原因它在这里不起作用。
ajaxLoad = function(html) {
init();
// init google map
initMap();
// change html title
var HTMLtitle = $(".content > section:first-of-type").attr("data-title");
$(document).prop('title', HTMLtitle);
document.title = HTMLtitle;
// Used for popState event (back/forward browser buttons)
changedPage = true;
}
这只是 JavaScript 的一部分,如果需要,您可以在实时网站上查看上下文中的其余部分。
实时站点: http://dma.nz/practice/
单击主导航中的右上角链接可转到其他页面。在我的测试中,标题有时似乎会在第一页更改时更新,但在后续页面更改时永远不会起作用。大多数时候它根本不起作用并且标题永远不会更新。所有这些顶级页面都在数据属性中定义了正确的 HTML 标题,但该功能的某些部分失败并且没有更新标题,而且我找不到它的问题所在。
任何人都可以为我做错的事情提供帮助,或者提出更好的方法来更新每个 AJAX 页面加载的标题吗?
最佳答案
正如您所知,initMap 函数中存在 JavaScript 错误
Uncaught TypeError: Cannot read property 'firstChild' of null
该异常会破坏该行以下的所有 JavaScript。只需修复它,您的代码就会正常工作,就像您的主页一样:http://dma.nz/practice/
关于javascript - AJAX 页面加载后更新 HTML 标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39889234/