0

私はJavascriptとJQueryが初めてです。インターネットで解決策を検索した後、この質問を投稿することにしました。

問題:ユーザーが iframe 内のリンクをクリックすると、親のプログレスバーが更新されますが、これは一度だけトリガーされます。しかし、ユーザーが別のページに移動して戻ってくると、iframe 内のページがリロードされ、javascript もリロードされます。つまり、そのボタンのプログレスバーを再度更新できるということです。これは望ましくありません。リロードしてその機能を無効にした後、どの要素がクリックされたかを追跡する方法はありますか? URL パラメータ??

iframe 内の HTML:

<div id="sidenav">
   <ul>
      <li><a href="../right/section1/page1.html" target="presentation" class="active" name="position">positioning</a></li> 
      <li><a href="../right/section1/page2.html" target="presentation">comparisons</a></li>
    </ul>
</div>

iframe ページの Javascript:

$('#sidenav ul li a').one('click', window.parent.updateBar);
4

3 に答える 3

2

クライアントに記録したいものは何でも、基本的に同じ選択肢があります。

  • クッキー
  • クライアント側のストレージ
  • URLハッシュ

また:

  • サーバーへのラウンドトリップと結果ページへのデータの保存
于 2011-08-18T17:39:12.500 に答える
0

のようなものlocalStorage。唯一の欠点は、再起動などの後でも持続することですが、Webサイト全体をリロードすると値をリセットできます。また、IE7以下ではサポートされていません。

function updateBar() {
    if(localStorage['pressed'] == 'true') return; // abort if already pressed

    // do things

    localStorage['pressed'] = 'true'; // save the data that it is pressed
}
于 2011-08-18T17:39:48.490 に答える
0

おそらく、サーバー側でそのようなことをしたいと思うでしょう。ページ上のデータの状態を追跡することは、通常、サーバー側で行われるため、ロジックをインターフェイスの外に置くことができます。今後のメンテナンスが格段に楽になります。

于 2011-08-18T17:51:52.443 に答える