在模态上使用历史记录和pushState / currentState时,前进按钮不起作用

时间:2017-09-07 17:07:43

标签: javascript jquery browser-history html5-history

我正在使用history和pushState / currentState:

  1. 触发模式时更改网址。
  2. 如果按下后退按钮或模态关闭按钮,请关闭模态和 返回上一个网址。
  3. 如果模式被触发,关闭,并且按下前进按钮,则重新打开 模态并转到模态URL。
  4. 一切都在工作,除了3.我在那里有这个JS,但它似乎不起作用:

     df2 = fastparquet.ParquetFile(path).to_pandas()
    

    And here is a Fiddle.

    非常感谢任何帮助。非常感谢你。

1 个答案:

答案 0 :(得分:1)

您的代码中存在两个明显的问题:

  1. dataModal = $(this).attr("data-modal");。此上下文中的this引用window对象,因为popstate事件已在window上注册。 window没有data-modal属性,因此dataModal === undefined

  2. 当您在模态触发事件中pushState时,您不会将模态ID保存在任何位置。

  3. 可能的解决方案

    尝试在模态触发事件中执行history.pushState({dataModal: dataModal}, title, url);之类的操作。然后在popstate事件中,您可以var dataModal = e.state.dataModal获取模态ID。