检查onbeforeunload中的ace编辑器,查看是否进行了更改
checking the ace editor in the onbeforeunload to see if changes were made
我正在尝试使用ace编辑器中的$(window).on('beforeunload', function(){});
和editor.session.getUndoManager().isClean();
来检查用户是否对文档进行了更改,但没有单击提交按钮,但由于某些原因它不起作用。下面是代码:
editor.on('change', function(Isclean ) {
var Isclean = editor.session.getUndoManager().isClean();
});
var submitting = false;
$(window).on('beforeunload', function(){
if (submitting == false && Isclean == false) {
return "You have made some changes in the editor.";
};
});
但无论出于何种原因,Isclean总是返回布尔值true。
代码中有几个问题。在"change"事件处理程序中,函数参数和局部变量都被称为Isclean
。
其次,Isclean
变量对"beforeunload"事件处理程序不可见。
为了完成这项任务,我做了:
$(window).bind("load", function() {
editor.session.getUndoManager().markClean();
});
我在编辑器中预加载了一些Json,所以除非我调用editor.session.getUndoManager().markClean();
作为最后加载的东西(它必须是最后加载的),否则它总是布尔值为false。
相关文章:
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 是否可以禁用jquery中的单个单选按钮
- 如何检查数组中的对象是否等于选项值
- 如何知道javascript for语句中的所有结果是否都是错误的
- 是否“;对于的“;循环迭代遵循JavaScript中的数组顺序
- 是否可以在javascript中读取IE中的本地文件
- jQuery中的attr()是否强制小写
- JavaScript尾部调用中的函数是否经过优化
- 如何查明鼠标按下事件是否发生在滚动条上或元素中的其他任何位置
- 确定javascript中的html表对象是否具有<colgroup>是否
- 确定var是否是javascript中的elementFinder对象的方法是什么
- 使用JavaScript或jQuery检查单选按钮选择是否与数组中的项目匹配
- Javascript中的模块模式和揭示模块模式是否仅在创建API时有用;s
- 如何通过json对象选项卡中的Id来检查对象是否存在
- 是否排除节点中错误堆栈的第一行?/节点中的自定义错误类型
- 是否可以从html中的javascript调用.vbs文件
- javascript测试是否存在两个标志中的任何一个
- 如何确定套接字中的变量是否匹配
- 是否可以在数字输入框中的小按钮中添加事件侦听器
- 是否可以在不重新渲染的情况下显示/隐藏父对象中的元素