Safari 中的 Router.back() 按钮不起作用

Posted

技术标签:

【中文标题】Safari 中的 Router.back() 按钮不起作用【英文标题】:Router.back() button in safari not working 【发布时间】:2019-12-06 01:52:19 【问题描述】:

我目前正在使用 next.js 样板制作一个移动 Web 应用程序。

我的后退按钮代码是这样的。

import Router from 'next/router'

<button>
  <a href="#" onClick=() => Router.back()>
    <span> some back button icon here </span>
  </a>
</button>

我认为我的 html 代码没有任何问题,但是当单击该按钮时 safari 浏览器,没用。有人有同样的经历吗?或知道解决方案?或知道为什么会这样? 请分享 ;

仅供参考。 IE、Chrome、Firefox等主流浏览器都试过了,只有Safari不行。

【问题讨论】:

你试过没有“()=>”的onClick=Router.back()吗? Darrelk 感谢您的意见,但如果我这样做了,即使我不点击后退按钮,Router.back() 函数也会执行。 [link] (***.com/questions/1873290/…) 我认为这说明了核心问题。 【参考方案1】:

这对我有用:

import Router from 'next/router'
...
<button>
  <a href="#" onClick=(e) =>  e.preventDefault(); Router.back(); >
    <span> some back button icon here </span>
  </a>
</button>

有点晚了,但我相信有人需要它。

【讨论】:

以上是关于Safari 中的 Router.back() 按钮不起作用的主要内容,如果未能解决你的问题,请参考以下文章

vue-router back()无效

router.back方法能被监听吗

如何检测 Vue $router.back() 是不是已完成,而不是历史堆栈为空的情况?

通过长按链接打开的共享菜单中的 Safari 浏览器中未显示应用程序图标

长按禁用 iPad / Safari 上下文菜单

Safari 中的 CSS 动画错误