【问题标题】:Why does my js not run when when navigating back on Safari?为什么在 Safari 上导航时我的 js 不运行?
【发布时间】:2017-05-03 12:24:21
【问题描述】:

当我通过从同一站点上的另一个页面导航返回来进入一个页面时,一半的功能不会运行,控制台上没有给出任何错误。如果我然后刷新页面,一切正常。

作为一个例子,我在我的主 js 文件的顶层添加了几个控制台日志,但没有任何内容被注销

Safari 如何处理加载事件并在以这种方式加载的页面上以不同方式运行 js 文件?

这只发生在使用 vue 组件的页面上

【问题讨论】:

    标签: javascript safari vue.js


    【解决方案1】:

    我通过在返回导航中重新加载页面解决了这个问题:

     window.onpageshow = function(event) {
          if (event.persisted) {
           window.location.reload() ;
       }
    };
    

    【讨论】:

    • 有效!我遇到了类似的问题。我正在使用 vuejs,当单击 safari 的返回按钮时,它会停止加载主 js。它在 chrome 和 firefox 上完美运行。如果有人遇到类似问题,只需尝试将上述脚本添加到 index.html 中。我认为这是由浏览器缓存引起的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-27
    • 1970-01-01
    • 2021-11-16
    • 1970-01-01
    • 2019-12-04
    • 2021-02-08
    • 2020-12-09
    相关资源
    最近更新 更多