在浏览器中禁用撤消和重做
Disable Undo and Redo in browsers
我想禁用撤消和重做在所有浏览器使用JavaScript。我想这样做,因为我们的应用内置了自己的撤销和重做历史记录。
我已经可以处理按键禁用撤消和重做通过键盘输入,但我想禁用菜单项,以及。(标准菜单和右键菜单)
这可能吗?即使只在某些浏览器中支持,也比没有好。
我知道这已经过时了,但对于那些好奇的人来说,这对我来说很有用。
$(window).bind('keydown', function(evt) {
if((evt.ctrlKey || evt.metaKey) && String.fromCharCode(evt.which).toLowerCase() == 'z') {
evt.preventDefault();
}
});
您可以做的一件事是拦截popstate事件。不幸的是,我认为它不能被取消,所以你必须通过添加一个虚拟状态来撤销它。
下面的代码阻止我按回Chrome和FF。请随意在其他浏览器上进行测试。
window.setTimeout(function(){
window.history.pushState({}, '', '#');
window.addEventListener("popstate", function() {
window.history.pushState({}, '', '#');
});
},1000);
确保适当地修改代码以适应您自己的历史记录。也可以考虑使用HTML5历史API,而不是你自己的历史实现。
https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Manipulating_the_browser_history不可能使用浏览器api。但是有一些方法可以检测或处理方法。Url散列是处理向后或向前事件的一种方法。但是浏览器出于用户安全考虑不支持此功能。你可以搜索javascript url散列脚本,但不要忘记与html5浏览器兼容的脚本。
相关文章:
- 如何设置$.ajax请求的超时,并在超时时间过长时进行重做
- 使用本地存储在Javascript中撤消、重做
- 在html/javascript中请求撤消/重做事件
- 缩放和撤消在画布上重做无法正常工作
- 所见即所得内容中的撤消和重做SWT中的可编辑内容;不起作用
- 使用 jquery 修改文本区域上的撤消/重做行为
- 是否可以在文本区域中插入文本并更新撤消/重做队列
- 使用结构.js在画布中撤消和重做命令
- 谷歌地图api v3:为编辑后的多边形添加自定义撤消/重做功能
- JavaScript用一组不同的字母替换每个字母,但不要重做已经替换的部分
- 撤消重做时出现逻辑错误
- 使用statproperties和hasstatechange在fabric.js中实现撤销/重做
- 在 JavaScript 中撤消/重做
- 在浏览器中禁用撤消和重做
- 在GWT应用程序中捕获ctrl -z(撤消)和ctrl -y(重做)
- 如何在svg元素中撤消和重做onclick
- 如何在浏览器兼容的Javascript中撤销和重做事件
- 点击内置的文本区撤消/重做堆栈
- 撤消重做:记录每个阶段与只记录操作
- 使用jQuery撤消、重做、复制、粘贴、剪切