2014-10-02 29 views
0

我試圖在用戶離開頁面時觸發警告,如果他對TinyMCE插件的textareas進行了更改。TinyMCE textarea不響應'onkeydown'事件

這是我的代碼。它工作,如果我使用正常形式的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'的值仍然是錯誤的。

任何想法?

非常感謝!

回答

1

TinyMCE的隱藏textarea,並提出了自己的CONTENTEDITABLE div所以沒有發生的keydown在您的textarea。你需要將TinyMCE的方法來添加事件偵聽器,當你初始化它:

tinyMCE.init({ 
    selector:'#ap0sub2', 
    setup : function(ed) { 
        ed.on('keydown', function(e) { 
        cambios = true; 
        console.log(cambios); 
        }); 
      } 
}); 

工作演示:http://jsfiddle.net/exmdg7ha/

+0

哦,大!我不知道我可以在編輯器方法中添加事件偵聽器。非常感謝,現在我可以做很多事情,我認爲我不能:) – Katalhama 2014-10-02 09:56:27