使用AngularJS/Javascript禁用仅浏览器返回按钮导航(不包括应用中的链接)
Disable Only Browser Back Button navigation(not links in app) with AngularJS/Javascript
我正在使用AngularJS做SPA。我想在应用程序中使用链接浏览应用程序状态,我想防止在单击后退按钮时出现相同的导航
我找到的所有解决方案,包括angularJs中的$locationChangeStart,当我在应用程序中点击链接时,也会阻止导航。
请提供一个解决方案,防止只有浏览器返回按钮导航,并允许通过在应用程序中单击链接导航。
要做到这一点,最简单的方法是从当前应用程序状态(url)到有效的下一个应用程序状态(url)的转换映射,并且只有在从当前状态到$locationChangeStart
所需状态的转换无效时才使用preventDefault。
如果你这样做,你不仅阻止了用户使用后退按钮,而且还阻止了在浏览器中放置不受欢迎的url来创建无效的应用程序状态,并可能损害你的应用程序。
我建议你不要用一些"on history change history"。方法,就像在另一个答案中链接的,这是最糟糕的UX,让它对用户透明。
相关文章:
- 如何将页面上的所有电话号码更改为可点击链接,不包括特定类别的元素
- 将正则表达式重新分解为不包括空组
- 为什么从JSON文本到类型的转换不包括函数
- XMLHttpRequest调用不包括If Modified Since标头
- 使用 JavaScript 执行一行 PHP(不包括 PHP 文件)
- 捆绑器不包括 .min 文件
- 与冒号(不包括冒号)之间的正则表达式单词匹配
- 包含特殊字符 (!,@,#,&) 不包括其他特殊字符
- 如何在不包含导航选项卡内容、页脚和头部的情况下打印 HTML/PHP 页面
- Javascript RegEx:如何获取单引号之间的名称(不包括单引号)
- Javascript RegEx匹配URL's,但不包括图像
- Rails不包括用于javascript的require_tree
- 获取JS中特定路径的cookie,不包括根路径
- requireJS优化器不包括嵌套的require调用
- 不包括'+'和'&'正则表达式中的字符
- 如何获取html页面中所有p和h标记的值,不包括所有其他标记
- 使用javascript查找小数前的整数(不包括特殊字符)
- Javascript RegEx:在符号后获取1或2位数字(不包括该符号)
- 如何获取应用程序.js其中不包括压缩代码
- 使用AngularJS/Javascript禁用仅浏览器返回按钮导航(不包括应用中的链接)