AJAX页面加载后更新HTML标题

时间:2016-10-06 06:43:58

标签: javascript jquery ajax html-title

当我通过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页面加载的标题吗?

1 个答案:

答案 0 :(得分:1)

您已了解initMap函数中的javascript错误

  

未捕获的TypeError:无法读取属性' firstChild'为null

该异常会破坏该行下方的所有javascript。只需修复它,您的代码就会起作用,就像您的主页一样:http://dma.nz/practice/