TinyMCE textarea不响应'onkeydown'事件

时间:2014-10-02 09:18:12

标签: javascript html tinymce

我试图在用户离开页面时触发警告,如果他在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;仍然是假的。

有什么想法吗?

非常感谢!

2 个答案:

答案 0 :(得分:1)

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/

答案 1 :(得分:0)

在tinyMce 4中:

tinymce.init({
    ...
    init_instance_callback: function (editor) {
        editor.on('keyDown', function (e) {
            console.log('Element clicked:', e.target.nodeName);
        });
    }
});

test keyboard key code