0

phonegap、リーフレット、jquery(-mobile) を使用した複数ページのモバイル アプリと、次の問題があります。

page1 でマップ マーカーをクリックすると、poi の名前が localstorage に書き込まれ、次に page2 が呼び出されます。

var onMarkerClick = function(e) {
akt_poi = e.layer.options.poi;
var globVars = {
    "akt_poi": akt_poi,
};
localStorage.setItem('globalVariables', JSON.stringify(globVars));
window.location = '#page2';
};

page2 では、次のことを行っています。

<div data-role="content">
<div id=poi></div>
<script type="text/javascript">
var gV = JSON.parse(localStorage.getItem("globalVariables"));
var a_poi = gV.akt_poi;
document.getElementById("poi").innerHTML='<h2>'+a_poi+'</h2>';
</script>

正しい値は、最初の呼び出しでのみ表示されます。ページ 1 のマップ マーカーをもう一度クリックすると、ローカルに保存された値ではなく古い値が、ページの更新を行うまでページ 2 に表示されます。正しい値を表示するにはどうすればよいですか?

4

1 に答える 1

0

sessionstorageを使用して問題を解決しました。

ページ1の設定:

var onMarkerClick = function(e) {
  akt_poi = e.layer.options.poi;
  sessionStorage.akt_poi=akt_poi;
  window.location = '#page2';
};

2ページを読む:

<div data-role="content">
<div id=poi></div>
<script type="text/javascript">
  $('#page_audio').live('pageshow', function(event, ui) {
     document.getElementById("poi").innerHTML='<h2>'+sessionStorage.akt_poi+'</h2>';
    });
</script>
于 2013-01-15T09:12:25.483 に答える