2012-09-04 16 views
6

मैं CKEditor में टेक्स्ट पैराग्राफ में कस्टम क्लासेस या आईडी कैसे जोड़ूं? मैं डीबी से संभावित कक्षाएं लोड करना चाहता हूं और सीकेई लोड होने के कारण उन्हें जो भी सूची में शामिल करूँगा उन्हें लिखना चाहूंगा। आईडी को बस जगह पर बनाया जाएगा। कक्षाओं और आईडी का उपयोग फुटनोट या कैप्शन के रूप में टेक्स्ट के टुकड़े को चिह्नित करने जैसी चीजों के लिए किया जाएगा।सीकेईडिटर में पैराग्राफ में सीएसएस कक्षाएं और आईडी कैसे जोड़ें?


बस स्पष्ट होना, मैं सीएसएस वर्गों उसके बाद यह निर्भर करता है सहेजा जा चुका है तत्व शैली के लिए इस्तेमाल किया जा सकता है जोड़ने के लिए लटकती बक्से का प्रयोग, मैं चाहता हूँ दिखाई शैली पाठ बदलने के लिए नहीं करना चाहते हैं जहां इसका उपयोग किया जाता है।

उत्तर

3

यहां आप जाते हैं। यह कोड आपके अनुच्छेदों को बाद के आईडी के साथ नंबर देगा और यह प्रत्येक पैराग्राफ में एक कस्टम क्लास भी जोड़ देगा जो अभी तक असाइन नहीं किया गया है।

var idCounter = 0, 
    pClass = 'myCustomClass', 
    pClassRegexp = new RegExp(pClass, 'g'); 

CKEDITOR.replace('editor1', { 
    on: { 
     instanceReady: function() { 
      this.dataProcessor.htmlFilter.addRules({ 
       elements: { 
        p: function(element) { 
         // If there's no class, assing the custom one: 
         if (!element.attributes.class) 
          element.attributes.class = pClass; 

         // It there's some other class, append the custom one: 
         else if (!element.attributes.class.match(pClassRegexp)) 
          element.attributes.class += ' ' + pClass; 

         // Add the subsequent id: 
         if (!element.attributes.id) 
          element.attributes.id = 'paragraph_' + ++idCounter; 
        } 
       } 
      }); 
     } 
    } 
}); 
+0

'class' जे एस में एक आरक्षित शब्द है, तो आप उद्धरण में लपेट चाहिए : 'element.attributes ['class']' – fncomp

+0

मैंने अपने प्रश्न को थोड़ा गलत बताया: पीआई संपादक के वर्तमान उपयोगकर्ता को यह तय करना चाहता था कि कौन सी आईडी और कौन सी कक्षा किसी निश्चित तत्व को दे। वैसे भी, इनपुट के लिए धन्यवाद। मेरा इनाम इस मुद्दे पर ध्यान देने के लिए था, इसलिए मैं इसे केवल एक ही ध्यान में दे रहा हूं :) – Nenotlep

+0

यह वही था जो मैं ढूंढ रहा था :) कुछ संशोधनों के साथ (मुझे कुछ SHA1 आईडी की आवश्यकता होगी) इसे बेकार ढंग से काम करना चाहिए। आपका बहुत बहुत धन्यवाद! :) –

0

मैं चारों ओर चला गया और कुछ इस तरह (मैं CKeditor 4.4.7 का उपयोग कर रहा) किया है:

editor.addCommand('colSm1', { 
    exec: function (editor) { 
    var $element = editor.elementPath().block; 

    if ($element.getAttribute('class') == null) { 
     $element.addClass('col-sm-1'); 
    } 
}); 
संबंधित मुद्दे