0

我是 Javascript 和 JQuery 的新手。在互联网上搜索解决方案后,我决定发布这个问题。

问题:当用户点击 iframe 中的链接时,它会更新父级的进度条,该进度条只会触发一次。但是,当用户转到另一个页面并返回时,iframe 中的页面会重新加载,javascript 也是如此,这意味着可以为该按钮再次更新进度条,这是我不想要的。在重新加载和禁用该功能后,有什么方法可以跟踪单击了哪些元素?网址参数??

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

无论您想在客户端上记录什么,您基本上都有相同的选择:

  • 饼干
  • 客户端存储
  • 网址哈希

或者:

  • 往返服务器并将数据存储在结果页面中
于 2011-08-18T17:39:12.500 回答
0

类似的东西localStorage。唯一的缺点是即使在重新启动等之后它仍然存在,但是如果重新加载整个网站,您可以重置该值。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 回答