2015-01-28 4 views
2

Я использую ckeditor в проекте Rails4. Я попробовал как драгоценный камень ckeditor, так и ckeditor_rails gem, чтобы предоставить библиотеки ckeditor.Отключить контекстное меню ckeditor в версии 4.4.6

Здесь есть несколько сообщений от людей, желающих удалить контекстное меню ckeditor, чтобы можно было отобразить контекстное меню собственного браузера.

Обычно это означает, что используется орфографический запрос браузера, а не платный/рекламируемый орфографический калькулятор ckeditor.

how-to-remove-contextmenu-in-ckeditor-4-3

ckeditor-3-6-3-enable-browser-spellcheck-and-disable-context-menu

how-to-disable-ckeditor-context-menu/20229730#20229730

Третье звено имеет наибольшее количество ответов, но ни один из них не является общепринятой. Обычно ответ удалить Контекстное плагин, помещая следующее в CKEditor config.js

config.removePlugins = 'contextmenu'; 

Существует также предположение, что ContextMenu является зависимость от других плагинов и разных людей добавить множество других плагинов для также удаляться.

Одно полезное сообщение предлагает запустить следующий код в консоли, чтобы установить зависимости.

$.each(CKEDITOR.plugins, function(k, v){ 
    v.requires && console.log("Plugin '" + k + "' requires: " + v.requires) 
}) 

Это, кажется, хорошо работает и предполагает, что планшеты и плагин liststyle зависят от контекстного меню. Таким образом, мы в конечном итоге с

config.removePlugins = 'liststyle,tabletools,contextmenu'; 

К сожалению, это не отключает контекстное меню в версии CKEditor, что я использую (4.4.6 установленное путем добавления предупреждения (CKEDITOR.version) в config.js)

Наконец, есть предложение использовать следующий код в config.js

CKEDITOR.on('instanceReady', function(ev) { 
    ev.editor.editable().addClass('cke_enable_context_menu') 
}); 

там нет никаких предположений о том, как это предназначается, чтобы отключить контекстное меню, но в любом случае это не имеет никакого значения для меня.

Для меня это showstopper, поскольку контекстное меню ckeditor скрывает предложения по орфографии браузера, а параметры вырезания и вставки, которые он содержит, фактически не работают, а просто вызывают диалог браузера.

Настройки безопасности вашего браузера не позволяют редактору автоматически выполнять операции копирования. Используйте клавиатуру для , что (Ctrl/Cmd + C).

Во всех других аспектах ckeditor, по-видимому, является лучшим действующим редактором.

+0

config.removePlugins = 'contextmenu, tableools'; работает для меня в 4.4.7. – Damien

ответ

1

As simple as that:

CKEDITOR.replace('textarea', { 
    removePlugins: 'contextmenu,tabletools' 
}); 

Если это не поможет, вы должны включить правильный образец воспроизвести проблему, потому что что-то экзотическое, что происходит в вашей системе.

+0

Как это отличается от «confg.removePlugins и т. Д.»? Я предполагаю, что в вашем примере кода строка «textarea» относится к идентификатору текстового поля? Когда я пытаюсь выполнить этот код (в моем документе.ready), я получаю сообщение «Uncaught». Экземпляр редактора «contact_case_notes» уже прикреплен к предоставленному элементу ». – giorgio

1

Если кто-то смотрит на том, как отключить контекстное меню и получить доступ к родной браузер спеллчекер в CKEditor:

CKEDITOR.replace('editor1', { 
    removePlugins: 'contextmenu,liststyle,tabletools,tableselection', 
    disableNativeSpellChecker: false 
}); 

(проверено на CKEditor 4.7.0, стандартный пакет)

Смежные вопросы