CKEDitor xóa tên lớp, ngay cả với ngoại lệ trong cấu hình


17

CKEditor dường như đang loại bỏ tên lớp khi tôi chuyển đổi giữa chế độ xem HTML và chế độ xem Rich Text.

Theo nhiều đề xuất trên web, tôi đã thêm phần sau vào tệp config.js:

config.allowedContent = true;

Đã tải lên, xóa bộ nhớ cache và thậm chí trực tiếp đến tệp JS để kiểm tra xem nó không lưu vào bộ nhớ cache trên máy của tôi, nhưng nó vẫn xóa các lớp.

Có giải pháp nào khác không?

Câu trả lời:


18

Chuyển đến "Quản trị viên >> Cấu hình >> CKEditor"; trong Hồ sơ , chọn hồ sơ của bạn (ví dụ: Đầy đủ ).

Chỉnh sửa cấu hình đó và trên "Tùy chọn nâng cao >> Cấu hình JavaScript tùy chỉnh" thêm config.allowedContent = true;.

ảnh chụp nhanh

Đừng quên xóa bộ đệm trong "Tab hiệu suất."


Hoạt động với tôi trên Drupal 7 với mô-đun CKEditor 7.x-1.13 và CKEditor 4.3.2. Cảm ơn, tôi chỉ bắt đầu đau đầu với điều đó!
Benj

1
Bây giờ trong "Quản trị >> Nội dung tác giả >> Cấu hình >> CKEditor".
Hugo

7

Chỉnh sửa hồ sơ đầy đủ trong Cấu hình> CKEditor

nhập mô tả hình ảnh ở đây

Mở phần Bộ lọc nội dung nâng cao và chọn Tắt nhập mô tả hình ảnh ở đây

Không cần thêm bất cứ điều gì trong trường Nội dung được phép bổ sung. Không cần thay đổi config.js. [... như thế này đã không khiến tôi mất hàng giờ để tìm hiểu]


2
Bây giờ trong "Quản trị >> Nội dung tác giả >> Cấu hình >> CKEditor".
Hugo

1

Vấn đề này đã được giải quyết trong dev (7.x-2.3 khi được xuất bản) như là một phần của CKeditor 4.1 ACF . Bạn có thể thử nâng cấp WYSIWYG của mình hoặc thử các cách giải quyết dưới đây.


Trong Drupal 7, bạn có thể thử hook sau:

<?php
/**
 * Implements hook_wysiwyg_editor_settings_alter().
 */
function MYMODULE_wysiwyg_editor_settings_alter(&$settings, $context) {
  if ($context['profile']->editor == 'ckeditor') {
    $settings['allowedContent'] = TRUE;
  }
}
?>

hoặc bằng cách sử dụng một số ý tưởng khác:

<?php
/**
 * Implements hook_wysiwyg_editor_settings_alter().
 */
function MYMODULE_wysiwyg_editor_settings_alter(&$settings, $context) {
  if ($context['profile']->editor == 'ckeditor') {
      $settings['extraAllowedContent'] = array(
        'img[src,title,alt,style,width,height,class,hspace,vspace,view_mode,format,fid]',
      );
  }
}
?>

hoặc với mã jQuery sau:

CKEDITOR.replace( textarea_id, {
    allowedContent: true
} );

Liên quan:


0

Đi Commando và vô hiệu hóa wysiwyg hoàn toàn.

Nếu bạn biết cách viết HTML và CSS cơ bản, tức là bạn không phải là khách hàng, thì hãy tắt plugin. Nó cũng sẽ cải thiện các kỹ năng HTML / CSS của bạn

Tôi đã dành nhiều ngày để tìm ra cách ngăn chặn wysiwyg đánh cắp các lớp của tôi và các thẻ pre / code mỗi khi tôi tải lại trình soạn thảo. Tôi nhận ra rằng tất cả những gì tôi đang làm là cố gắng vô hiệu hóa tất cả các chức năng plugin wysiwyg. Vì vậy, tôi tắt nó đi.

Đúng, điều này trái với câu trả lời của tôi ở trên.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.