2010-09-11 34 views
10

Tôi đang tạo và hủy các văn bản tự động cho mục đích này. Tuy nhiên, khi tôi tạo ra một textarea và sau đó một thể hiện của nó trong tinymce - sau đó trở lại trang một lần nữa, nó không hoạt động. Tôi đã tìm thấy rằng giải pháp là chỉ đơn giản là loại bỏ bất kỳ trường hợp hiện có của cùng một tên, nhưng tôi đã tự hỏi nếu nó có thể chỉ cần làm điều đó lúc khởi động.Làm thế nào để loại bỏ tất cả các trường hợp tinymce lúc khởi động?

Cảm ơn trước!

Trả lời

13

Bạn phải đảm bảo rằng văn bản hoặc các yếu tố khác mà bạn tạo một cá thể nhỏ cần phải có các id khác nhau.

Để loại bỏ tất cả các ví dụ TinyMCE bạn có thể sử dụng (tinymce3):

 for (var i = tinymce.editors.length - 1 ; i > -1 ; i--) { 
      var ed_id = tinymce.editors[i].id; 
      tinyMCE.execCommand("mceRemoveControl", true, ed_id); 
     } 

Đối tinymce4 sử dụng:

 for (var i = tinymce.editors.length - 1 ; i > -1 ; i--) { 
      var ed_id = tinymce.editors[i].id; 
      tinyMCE.execCommand("mceRemoveEditor", true, ed_id); 
     } 

Hãy chắc chắn để đóng cửa các trường hợp đúng cách khi bạn cố gắng khởi tạo lại một TinyMCE ví dụ. Nếu không, cửa sổ trình soạn thảo của bạn có thể giữ màu trắng hoặc hoàn toàn không thể chỉnh sửa được.

+1

điều này sẽ không làm việc vì bộ sưu tập tinymce.editors.length đang giảm kích thước – P6345uk

+1

@ P6345uk: đúng, tôi mất này vào tài khoản bây giờ – Thariama

+0

Mát mẻ đã nhanh chóng – P6345uk

0

Bạn có thể sử dụng những dòng này trong chức năng onload của javascript hoặc trên lưu biểu mẫu sơ thẩm trước

if (tinyMCE.getInstanceById(id) != null) 
{ 
    tinyMCE.execCommand('mceRemoveControl', true, id); 
} 

nơi id là id của textarea hoặc đầu vào mà TinyMCE có mặt

0

Như trước đây @ P6345uk cho biết trong các bình luận, bộ sưu tập tinymce.editors.length đang giảm kích thước.

Vì mã từ @Thariama cũng không làm việc cho tôi nên tôi đã cập nhật và thực hiện các dòng này. Làm việc cho tôi, hãy thử nó.

var length = tinymce.editors.length; 
if(length>0){ 
    for (var i=0; i<length; i++) { 
     tinyMCE.execCommand('mceRemoveControl',false, tinymce.editors[0].id); 
    }; 
} 
6

Đồng nghiệp của tôi Beni phát hiện ra một giải pháp thông minh để loại bỏ tất cả TinyMCEs hiện:

if(typeof(tinyMCE) !== 'undefined') { 
    var length = tinyMCE.editors.length; 
    for (var i=length; i>0; i--) { 
    tinyMCE.editors[i-1].remove(); 
    }; 
} 
1

Đây là những gì tôi đang sử dụng và dường như làm việc tốt:

while (tinymce.editors.length > 0) { 
    tinymce.remove(tinymce.editors[0]); 
} 
9

Đối với tôi công trình giải pháp này:

tinymce.editors = []; 

S o, bạn có thể xóa các mảng biên tập đầu tiên và khởi tạo lại các biên tập viên với init:

tinymce.editors = []; 
tinymce.init({ 
    selector: 'textarea.tinymce', 
    ... 
}); 
+1

điều này đã khắc phục sự cố trên firefox. Tuyệt vời – anhnt

+1

Đây phải là câu trả lời được chấp nhận! Đơn giản, hoạt động tốt trong IE (11 cho tôi) là tốt. – toni07

+0

+1. Điều duy nhất làm việc cho tôi (tinymce 4.3.13, firefox 47, nhiều phiên bản của trình soạn thảo trong các tab jquery ui, nơi người dùng cần phải thay đổi các tab liên tục và thay đổi nội dung của trình chỉnh sửa) – andrew

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