簡體   English   中英

用tinyMCE獲取內容?

[英]getting contents with tinyMCE?

我有一個tinyMCE textarea #frmbody,我正在使用它的jquery實例。

<textarea class="tinymce" name="frmbody" id="frmbody" cols="30" rows="20"></textarea>

我正在嘗試以用戶類型獲取textarea的內容。

$("#frmbody").live('keyup', function(e) {
    alert("keyup");
});

上面的代碼不起作用,我不知道為什么。 如果我刪除tinyMCE實例,上面的代碼工作正常。 有任何想法嗎?

這是因為TinyMCE的實例不是真正的textarea,因此未檢測到keyup事件。 請嘗試使用onchange回調

可以使用以下方法獲取編輯器的內容:

tinymce.activeEditor.getContent();

如果要附加onchange事件,請根據此頁面http://www.tinymce.com/wiki.php/api4:class.tinymce.Editor ,使用以下代碼創建編輯器:

var ed = new tinymce.Editor('textarea_id', { 
    init_setting_item: 1,
    ...
}, tinymce.EditorManager);

ed.on('change', function(e) {
    var content = ed.getContent();
    $("#textarea_id").val(content); // update the original textarea with the content
    console.log(content);
});

ed.render();

請注意,當用戶解除注意時,onchange會觸發,按Enter鍵或按工具欄按鈕而不是每次按鍵。

您可以通過以下方式制作tinyMCE自己的監聽器: http ://www.tinymce.com/wiki.php/API3:event.tinymce.Editor.onKeyUp

或者自己編寫並使用內置函數getContent: http ://www.tinymce.com/wiki.php/API3: method.tinymce.Editor.getContent

編寫自己的處理程序並將其分配給編輯器iframe文檔非常容易。 已經定義了像keyUp這樣的各種事件的tinymce處理程序

以下是將自己的處理程序分配給編輯器iframe文檔的標准方法

var my_handler = function(event) {
    alert('my handler fired!');
};

var ed = tinymce.get('my_editor_id');
$(ed.getDoc()).bind('keyup', my_handler);

TinyMCE隱藏文本區域並創建一個html容器。 如果您在框中寫入內容,則其名稱為"TEXTAREANAME_ifr"的iFrame。

試試這個:

$("#frmbody_ifr").live('keyup', function(e) {
    alert("keyup");
});

我認為Thariama已經說過來自TinyMCE的EventHandler將是最好的方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM