jQuery地址从历史记录中删除最后一个网址

Posted

技术标签:

【中文标题】jQuery地址从历史记录中删除最后一个网址【英文标题】:jQuery Address Remove Last Url From History 【发布时间】:2012-05-31 16:44:15 【问题描述】:

我们在 ASP.NET MVC ajax 应用程序中使用 jQuery Address 插件来处理深度链接和历史记录的保存。每当您想导航到新页面时,只需进行以下调用:

$.address.value([some url])

我们的应用有一个非常详细的用户管理系统,允许我们的用户定义哪些用户可以访问应用中的哪些功能。我们用自定义的 Authorize 属性装饰每个操作方法,该属性确定用户是否有权使用该操作方法提供的功能。授权效果很好,但问题是如果用户没有使用给定操作方法的权限,浏览器 url 仍然反映就像他们在他们点击的链接的页面上一样。

例如,如果 url /SomeController/UnpermittedAction 表示用户不应该使用的操作方法,当他们单击该方法的链接时,我们会执行以下操作

$.address.value('/SomeController/UnpermittedAction')

然后,该操作返回未经授权的响应,我们向用户显示他们无权使用该功能。但是,可以理解的是,用户的浏览器窗口现在显示:

somedomain.com/#/SomeController/UnpermittedAction

这本身并不是真正的问题,问题是如果用户转到其他页面然后单击返回浏览器按钮,他们会再次看到未经授权的消息,并且看起来有些混乱,因为他们不是确定他们为什么会看到该消息。理想情况下,如果他们单击返回按钮,我们希望用户返回到他们被授权使用的最后一个页面。

我的问题是,有没有办法从浏览器历史记录和/或 jQuery 地址历史记录中删除未经许可的操作 url?

【问题讨论】:

【参考方案1】:

javascript中尝试

        $.address.history(false);
        $.address.value(newurl);
        $.address.history(true);

这将用新的 url 替换最后一个历史条目

【讨论】:

以上是关于jQuery地址从历史记录中删除最后一个网址的主要内容,如果未能解决你的问题,请参考以下文章

JS或jQuery,清除网页历史记录

JQuery Mobile - pagecontainer beforeshow:从历史记录中删除上一页

sh 从shell历史记录中删除最后一个命令,以及删除它的事实,没有设置HISTCONTROL =“ignorespace”

从浏览历史记录中删除敏感的URL数据

从历史记录中删除文件(磁盘空间不足)

怎样删除历史记录?