سؤال

هل يعرف أي شخص كيفية تعطيل قائمة سياق 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 أثناء النقر بزر الماوس الأيمن فوق قائمة السياق والوصول إلى مدقق الإملائي إلخ.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top