2013-05-02 43 views
5

Gần đây tôi đã cố gắng tích hợp TinyMce 4.0 vào ứng dụng web của mình. Tôi muốn đặt một sự kiện nhấp chuột khi tôi nhấp vào vùng văn bản nhưng nó không hoạt động. Tôi đã xem tài liệu chính thức và tôi đã thử các mã sau:Nhấp vào sự kiện trên TinyMCE 4.0

tinyMCE.init({ 
    ... 
    setup : function(ed) { 
     ed.onClick.add(function(ed, e) { 
      console.debug('Editor was clicked: ' + e.target.nodeName); 
     }); 
    } 

Có lỗi xuất hiện: "TypeError: ed.onClick is undefined".

Vì vậy, tôi đã cố gắng để đưa trực tiếp một sự kiện onclick trên iframe nhưng đó là một thất bại:

$("iframe").contents().bind('click', function(){ 
... 
}); 

Bạn có bất cứ ý tưởng về cách để làm điều này?

+0

bạn đang ở đâu test (trình duyệt)? – Amit

+0

Xin chào, tôi đã thử nghiệm trên phiên bản Google Chrome cuối cùng và phiên bản Firefox cuối cùng. – Scipius2012

Trả lời

0

Hmm, bạn có thể thử

$(ed.getDoc()).bind('click', function(){ 
... 
}); 

Cập nhật: Hình như không có biên tập khởi tạo thời điểm đó. Hãy thử

setup : function(ed) { 
     ed.onInit.add(function(ed, e) { 
     ed.onClick.add(function(ed, e) { 
      console.debug('Editor was clicked: ' + e.target.nodeName); 
     }); 
     }); 
    } 
+0

Cảm ơn bạn đã trả lời! Tôi đã thử mã của bạn nhưng tôi đã gặp lỗi sau: "ReferenceError: ed chưa được xác định". Tôi thậm chí đã cố gắng (để kiểm tra) để thay thế "ed" thành "window.tinyMCE.get (" idOfMyTextarea ")" và tôi đã lại lỗi trước đó. – Scipius2012

+0

xem bài đăng cập nhật của tôi – Thariama

+0

Tôi đã thử mã của bạn: nó hoạt động tốt cho phiên bản 3 nhưng không phải cho phiên bản 4. Khi tôi thử phiên bản 4, tôi đã gặp lỗi sau: "TypeError: ed.onInit is undefined ". Lỗi chỉ xuất hiện trên phiên bản 4! – Scipius2012

12

TinyMCE v4 đã thay đổi mọi thứ từ v3 - thử:

setup : function(ed) { 
    ed.on("click", function() { 
     alert("Editor Clicked! Element: " + this.target.nodeName); 
    }); 
}; 
+0

Quan trọng cần đề cập đến tham số 'ed' trong hàm cho 'lần nhấp 'không chứa phiên bản trình soạn thảo. Đây là trường hợp của tôi để xử lý sự kiện 'init'. Để truy cập cá thể trình soạn thảo (trình khởi tạo của sự kiện), sử dụng từ khóa 'this', ví dụ: ' editor.on ('init', function() { var doc = this.contentDocument; }); ' – psulek

+0

Cảm ơn - cập nhật để phản ánh điều đó –

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