我试图在用户离开页面时触发警告,如果他在TinyMCE插件的textareas中进行了更改。
我的代码。如果我使用普通形式的textarea,它可以工作,但是当我添加' onkeydown'活到小小的文本区。我已经完成了'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插件中使用它,那就完美无缺。但是当我加入文本编辑器时,&#39; cambios&#39;仍然是假的。
有什么想法吗?
非常感谢!
答案 0 :(得分:1)
tinyMCE会隐藏textarea
并显示自己的可疑div
,因此 在您的textarea上没有发生任何密钥。初始化时,您需要使用tinyMCE方法添加事件监听器:
tinyMCE.init({
selector:'#ap0sub2',
setup : function(ed) {
ed.on('keydown', function(e) {
cambios = true;
console.log(cambios);
});
}
});
答案 1 :(得分:0)
在tinyMce 4中:
tinymce.init({
...
init_instance_callback: function (editor) {
editor.on('keyDown', function (e) {
console.log('Element clicked:', e.target.nodeName);
});
}
});