2016-10-06 50 views
0

當我通過AJAX加載新頁面時,我需要更新HTML標題以匹配新頁面。下面的代碼是我在過去的項目中成功使用的,但由於某種原因,它在這裏不起作用。在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頁面加載標題?

+0

檢查你的控制檯,你有一個錯誤:'未捕獲的類型錯誤:無法讀取'null'屬性'firstChild'。 –

+0

@RoryMcCrossan謝謝我意識到這一點。我認爲這與我的谷歌地圖API代碼有關,我一直在努力在AJAX加載的頁面上工作。那個錯誤,即使不相關,會導致我的HTML標題更新失敗? –

+0

什麼是$(document).prop('title',HTMLtitle);'用於? – madalinivascu

回答

1

正如你在initMap功能

Uncaught TypeError: Cannot read property 'firstChild' of null

已經意識到了JavaScript錯誤的這個例外打破該行所有你的JavaScript以下。只需修復它,你的代碼就可以工作,就像你的主頁一樣:http://dma.nz/practice/

+0

我試圖解決這個問題,但還沒有找到解決方案。似乎爲了讓網站的一部分工作,我必須打破另一個!很難讓所有的東西一起工作。一旦我找出如何解決這個錯誤,我會報告回來。謝謝。 –

+0

我暫時禁用了拋出此錯誤的部分,看起來它可能會解決問題。對不起,這個愚蠢的問題。應該首先想到解決這個錯誤。 –