如果用户在TinyMCE插件的文本区域中进行了更改,则我试图在用户离开页面时触发警告。
有我的代码。如果我使用普通形式的textarea,它会起作用,但是当我将'onkeydown'事件添加到微小对象的textarea时,效果并不理想。我已经通过浏览器控制台批准了“ cambios”的价值,但我发现它从未改变其价值。
JS:
var cambios = false;
function change_cambios (){ cambios = true;}
window.onbeforeunload = function() {
if(cambios) {
return confirm('Are you sure?');
}
return;
}
HTML:
<form id="formulari" method="post" >
<textarea id="ap0sub2" name="area" onkeydown="change_cambios();"></textarea>
</form>
如果我在tinyMCE插件中使用它,那将完美地工作。但是当我包括文本编辑器时,“ cambios”的值仍然为false。
有任何想法吗?
非常感谢!
最佳答案
tinyMCE隐藏textarea
并显示其可编辑的div
内容,因此您的textarea上没有按键操作。初始化时,您需要使用tinyMCE的方法添加事件侦听器:
tinyMCE.init({
selector:'#ap0sub2',
setup : function(ed) {
ed.on('keydown', function(e) {
cambios = true;
console.log(cambios);
});
}
});
工作演示:http://jsfiddle.net/exmdg7ha/