【问题标题】:Vue-Router: $router.go(-1) doesn't work in SafariVue-Router:$router.go(-1) 在 Safari 中不起作用
【发布时间】:2018-04-28 08:25:30
【问题描述】:

我在App.vue 中有以下设置:

<top-nav></top-nav>
<main>
    <router-view v-bind="{isOnline}"></router-view>
</main>

top-nav的js中我有goBack方法:

methods: {
    goBack() {
        this.$router.go(-1);
    },
    ...
},

这在 Chrome 和 Internet Explorer 中运行良好,但在 Safari 中不行。在该.go(-1)-line 上调试和设置断点时,它会遇到断点并且一切看起来都很好(没有未定义的内容)。导航调用尚未完成。

这不适用于移动设备和桌面设备。我认为 Safari 支持 History API?

【问题讨论】:

  • This 在 Safari 中为我工作。请提供一个完整的可重现示例。
  • @DecadeMoon 我刚刚用 webpack 模板建立了一个新的 vue 项目。它在所有浏览器中都能正常工作。问题中的代码是否可能不起作用,因为top-nav 是一个自定义组件,而不仅仅是一些带有绑定的html?
  • No。它在其他浏览器中运行但在 Safari 中不运行的事实意味着正在发生一些时髦的事情。除非你能提供一个我可以调试的小提琴,否则我无能为力。 goBack() 是如何被调用的?它在&lt;form&gt; 内吗?我需要更多信息。该错误可能是由您未在问题中提供的代码引起的。
  • 好的,所以我刚刚看到我正在使用的图标被包裹在一个锚标记中,该标记将href 属性设置为“#”,这是我忘记从设计器代码中提取的东西。感谢您的帮助!

标签: safari vue.js navigation vue-router html5-history


【解决方案1】:

我发现我用于返回的图标被包裹在一个带有href属性的锚标记中。

<a v-if="showBackButton" href="#" @click="goBack">
    <i class="icon icon-200-chevron-left-small"></i>
    <p>back</p>
</a>

解决方案:

将锚标记更改为跨度或其他内容,当然删除 href 属性。

【讨论】:

    猜你喜欢
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 2019-12-06
    • 2020-02-09
    • 2020-10-31
    • 1970-01-01
    • 2017-04-17
    相关资源
    最近更新 更多