كيفية تعطيل قائمة سياق ckeditor؟
-
20-09-2019 - |
سؤال
هل يعرف أي شخص كيفية تعطيل قائمة سياق ckeditor (انقر بزر الماوس الأيمن)؟ أتوقع خيار التكوين، لكن لا يمكنني العثور على واحدة. أنا أستخدم V3.1. شكرًا.
المحلول
تحتاج إلى إزالة contextmenu
توصيل في. يرى هنا لمدة 3.1.
نصائح أخرى
اعتبارا من الإصدار 3.6.4، لا تعمل الإجابات الأخرى في هذا السؤال بعد الآن. انظر الخطأ رقم 9284
المكونات الإضافية الثلاثة التي تحتاج إلى تعطيل (باستخدام الوسائل التي تمت مناقشتها في هذا السؤال)، هي contextmenu
, liststyle
و tabletools
. وبعد لذلك على سبيل المثال، باستخدام ملفات التكوين:
CKEDITOR.editorConfig = function(config) {
/* Your config options */
...
config.removePlugins = 'contextmenu,liststyle,tabletools';
};
ckeditor. 4.7.1
CKEDITOR.editorConfig = function (config) {
config.language = 'en';
config.toolbar = "mini";
config.removePlugins = 'elementspath,contextmenu,liststyle,tabletools,tableselection';
config.disableNativeSpellChecker = false;
}
ckeditor. 4.8.0
("ErementementPath" البرنامج المساعد لم يعد بحاجة إلى إزالة)
CKEDITOR.editorConfig = function (config) {
config.language = 'en';
config.toolbar = "mini";
config.removePlugins = 'contextmenu,liststyle,tabletools,tableselection';
config.disableNativeSpellChecker = false;
}
لا يزال هناك حل عملي، عن طريق تجاوز وظيفة النموذج الأولي الذي تهيمن عليه contextmenu
سلوك:
CKEDITOR.dom.element.prototype.disableContextMenu = function () {
this.on( 'contextmenu', function( event ) {
// your contextmenu behavior
});
};
ملاحظة: عندما يحمل CKEDitor موارد JS الخاصة به بشكل حيوي تحتاج إلى وضعه مباشرة قبل replace
يتصل.
كنت بحاجة إلى تعطيل كل ما يلي للحصول على هذا للعمل.
config.removePlugins = 'language,tableresize,liststyle,tabletools,scayt,menubutton,contextmenu';
سابقا لم نحتاج إلى لغة أو Tableresize - ولكن يبدو أن إصدار أحدث من CKEDitor يطلب ذلك.
اكتشفت هذا في النظر إلى الإخراج في أدوات F12 Dev على Chrome.
للإصدار 4.2، وضعت ما يلي في نهاية ملف CONFIG.JS الخاص بي
CKEDITOR.on('instanceReady', function(ev) {
ev.editor.editable().addClass('cke_enable_context_menu')
});
يمكنك معرفة الإضافات التي تتطلب contextmenu
في بناء CKEditor الخاص بك باستخدام المقتطف التالي في نافذة وحدة تحكم F12 في موقعك (يفترض أن لديك JQuery أيضا $.each
):
$.each(CKEDITOR.plugins, function(k, v){
v.requires && console.log("Plugin '" + k + "' requires: " + v.requires)
})
علي سبيل المثال:
يتطلب البرنامج المساعد "Tabletools" جدول، حوار، ContextMenu
التي يمكنك استخدامها بعد ذلك لمساعدتك في config.removePlugins
- في حالتي:
config.removePlugins = 'tabletools,contextmenu'
مع ckeditor 3.6 كنت قادرا على تعطيل قائمة السياق عن طريق إزالة البرنامج المساعد ContextMenu كما هو مقترح أعلاه. للقيام بذلك، عليك تكوين محرر مع خيار RemovePlugins. على سبيل المثال:
CKEDITOR.replace('my_editor', {
removePlugins : 'contextmenu'
});
يمكن أيضا تعطيلها عالميا من ملف Config.js:
CKEDITOR.editorConfig = function(config) {
/* Your config options */
...
config.removePlugins = 'contextmenu';
};
لسوء الحظ منذ ckeditor 3.6 / 4.0 هذا لا يعمل بعد الآن.
انظر تقرير الأخطاء: http://dev.ckeditor.com/ticket/9284.
في CKEditor 4.x، (اخترت 4.2.2) يجب عليك القيام بهما:
CKEDITOR.replace('my_editor', {
removePlugins : 'contextmenu'
});
و
CKEDITOR.editorConfig = function(config) {
/* Your config options */
...
config.removePlugins = ''liststyle,tabletools,contextmenu'';
};
كل ثلاثة من تلك سوف تتطلب تلقائيا السياق إذا كنت لا تعطيلها.
من الممكن تعطيل قائمة السياق تماما إضافة هذا السطر إلى ملف التكوين الخاص بك (fckconfig.js):
FCKConfig.ContextMenu = [];
اضغط باستمرار على زر CTRL أثناء النقر بزر الماوس الأيمن فوق قائمة السياق والوصول إلى مدقق الإملائي إلخ.