2013-05-12 24 views
6

Tôi đang sử dụng TinyMCE 4 nhưng tài liệu là khủng khiếp. Tôi đang cố gắng cung cấp bản xem trước trực tiếp nội dung trong một div khác (bên ngoài trình chỉnh sửa). Hiện tại, tôi đang nghe những sự kiện này:Hook vào onExecCommand sự kiện với TinyMCE 4

$(document).on('tinymce:changed tinymce:init', ...) 

Điều này làm việc khi nhập văn bản, nhưng không kích hoạt khi lệnh được thực thi (thay đổi văn bản hiện tại thành chữ đậm chẳng hạn).

Có vẻ như trong TinyMCE 3.x có sự kiện onExecCommand thực hiện những gì tôi muốn. Nhưng tôi không thể tìm thấy bất kỳ tài liệu hướng dẫn về cách nghe sự kiện jQuery toàn cục như tôi đang làm với thay đổi và init. Có ai biết sự kiện nào đang bắn không?

+0

tôi đề nghị không sử dụng tinymce4 trừ khi nó được ra khỏi tình trạng beta – Thariama

Trả lời

4

Trong migration guide bạn có thể tìm thấy những ví dụ sau:

// Old event 
editor.onInit(editor, args) { 
    // Custom logic 
}); 

// New event 
editor.on('init', function(args) { 
    // Custom logic 
}); 

Vì vậy, một trong những vấn đề là để có được tên sự kiện đúng và trường hợp biên tập đúng :) Các onExecCommand() sự kiện trở thành 'ExecCommand' trong v4.

Vì vậy, thêm một handler vào thực hiện lệnh nên được như thế này (chắc chắn rằng các biên tập viên đã được khởi tạo khi thực thi mã dưới đây):

for (ed_id in tinymce.editors) { 
    tinymce.editors[ed_id].on('ExecCommand', function(args) { 
     alert(1); 
    }); 
} 

Đối với một số lý do sự kiện này cháy hai lần khi lệnh được thực thi. Tôi nghĩ bạn sẽ khắc phục vấn đề này.

Mặc dù phương pháp này không sử dụng các ràng buộc jQuery, nó hoạt động cho tôi và có thể sẽ giải quyết vấn đề của bạn.

+0

Wow, rằng "Old sự kiện "mã là một chút ... nó nghĩ nó là ruby. – alxndr

Các vấn đề liên quan