2016-03-29 18 views
0

jQueryでPolymer 1.0を使用していて、小さな単一ページアプリケーションを作成しました。ただし、「新しいタブでリンクを開く」では、ページが読み込まれません。具体的には、テンプレート形式でロードし、データを取得するためのajax要求を起動しますが、そのデータはテンプレートには格納されません。例えば、単純化されたバージョン:バックグラウンドタブのページが正しく読み込まれない

$(document).ready(function(){ 
    url = '/ajax/get_data'; 
    $.post(url, '', function(data) { 
     if (data.data.id !== undefined & data.data.id > 0) { 
     $('.gt-info-location').text(data.data.name); 
     $('.gt-city-population').text(data.population); 
     $('.gt-city-timezone').text(data.data.timezone); 
     $('.gt-city-county').text(data.data.county); 
     $('google-map')[0].latitude = data.data.latitude; 
     $('google-map')[0].longitude = data.data.longitude; 
     $('#location-frontpage').css('background',"url('pictures/"+data.data.image_file+"') center/cover"); 
     $('#location-back').css('background',"url('pictures/"+data.data.image_file+"') center/cover"); 
     } 
    }); 
}); 

私は$.postが起こっおよびWebリクエストログから正しいデータを返している知っているが、.text()または.css()機能のどれもが、ページに変更を加えていません。そして、はい、開いているタブで同じページを読み込んでも問題ありません。

答えて

0

それは少しハックですが、私もそれをバインド私が注目ウィンドウに.ready()にその機能を実行していることに加えて、その後loadDataAndPopulateToken()と呼ばれる関数に、私は.ready()にやってのだすべてを置くと:

$(document).ready(function(){ 
    // initial token load (doesn't work if in background tab) 
    loadDataAndPopulateToken(); 

    // reload the token data whenever the page comes into focus 
    window.onfocus = loadDataAndPopulateToken; 
}); 

このアプローチの欠点は、タブのフォーカスが合っていなくても元の状態に戻るたびに、すべてのデータをリロードすることです。

関連する問題