2011-06-24 35 views
0

我有一個jQuery的移動網站 - 一個頁面 - 我遇到了標題文本的問題。這是一個簡單的網站,只有5個頁面,都是具有data-role = page的div。當頁面加載時,我使用$ .get來檢索由外部PHP頁面生成的JSON格式的數組。進程頁使用URL變量來確定從我們的數據庫中檢索數據:所有頁面的Jquery一致標題標題文本

$.get("ajax/siteInfo.php?id=" + getURLvar('id'), function(siteData){ 
    sessionStorage.siteTitle = siteData.siteTitle; 
}, "json"); 

有超過1項更多的數據,但我縮短了它的簡單性。 JSON數組已成功檢索,我可以在控制檯中看到所有數據鍵值對。

還想指出的是,我有一個返回值時,該網站頁面加載的URL VAR(/index.html?id=2001)功能:

function getURLvar(name) 
{ 
    name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); 
    var regexS = "[\\?&]"+name+"=([^&#]*)"; 
    var regex = new RegExp(regexS); 
    var results = regex.exec(window.location.href); 
    if(results == null) 
    return ""; 
    else 
    return results[1]; 
} 

現在,我想使用的sessionStorage .siteTitle在每個5頁的:

<div data-role="header"> 
    <h1><script>document.write(sessionStorage.siteTitle);</script></h1> 
</div> 

這工作第一次在頁面加載,但如果我更改URL VAR ID並重新加載頁面的標題仍然是以前的頁面 - 即使我能看到從JSON數組中檢索到正確的標題。這就像sessionStorage.siteTitle被緩存,所以我第一次重新加載一個新的URL var ID它不會改變 - 但如果我再次加載新的標題顯示。

希望這是有道理的。我正在拉我的頭髮。如果有人對此有一個想法 - 或者甚至是在

回答

0

頭部有一致標題的替代和更合適的方式在初始頁面加載之後,該位的javascript永遠不會再被處理。它只設置頭一次,它成功。之後,您將不得不手動更新h1:

$.get("ajax/siteInfo.php?id=" + getURLvar('id'), function(siteData){ 
    $('div[data-role="header"] h1').html(siteData.siteTitle); 
}, "json"); 
0

我會在頁面顯示甚至被觸發時替換文本。此事件在請求頁面並向用戶顯示時觸發。在此,我將活動附加到所有頁面上:

$('div[data-role="page"]').live('pageshow', function() { 
    // replace header text 
    $(this).children('div[data-role="header"] h1').html(sessionStorage.siteTitle); 
}); 
相關問題