2012-05-23 15 views
8

आईएम एक एमवीसी एप्लीकेशन में काम कर रहा है और सीकेडिटर 3.6.2 संस्करण का उपयोग कर सही काम नहीं कर रहा है। मैंने ckeditor से चयनित एचटीएमएल प्राप्त करने के लिए निम्नलिखित कोड का उपयोग किया है।सीकेडिटर चयनित एचटीएमएल क्रोम ब्राउजर

CKEDITOR.editor.prototype.getSelectedHtml = function() { 

    if (CKEDITOR.env.ie) { 
     this.focus(); 
     selection = this.getSelection(); 
    } else { 
     selection = this.getSelection(); 
    } 
    if (selection) { 
     var bookmarks = selection.createBookmarks(), 
    range = selection.getRanges()[0], 
    fragment = range.clone().cloneContents(); 

     selection.selectBookmarks(bookmarks); 

     var retval = "", 
    childList = fragment.getChildren(), 
    childCount = childList.count(); 
     for (var i = 0; i < childCount; i++) { 
      var child = childList.getItem(i); 
      console.log(child); 
      retval += (child.getOuterHtml ? 
     child.getOuterHtml() : child.getText()); 
     } 
     return retval; 
    } 
}; 

मैं जब मैं() एक पाठ का चयन किया और CKEDITOR.instances.editor1.getSelectedHtml फोन क्रोम ब्राउज़र में समस्या आ रही है।

उदाहरण के लिए, मान लीजिए कि मेरे संपादक में एक सामग्री < अवधि शैली = "रंग: लाल;"> वेलकम नोट </span> है। अगर मैंने "वेलकम नोट" चुना है और कॉल सिलेक्टेड एचटीएमएल() विधि फ़ायरफ़ॉक्स, सफारी, आईई 8 कॉल स्पैन टैग के साथ "वेलकम नोट" देता है, लेकिन क्रोम केवल "वेलकम नोट" टेक्स्ट लौटाता है। यदि IC चयनित सामग्री को CKEDITOR.instances.editor1.insertHtml ("< div style = 'font-size: 12px'>" + CKEDITOR.instances.editor1.getSelectedHtml() + "</div>" का उपयोग करके चयनित सामग्री को प्रतिस्थापित करने का प्रयास कर रहा है, क्रोम में मैं फ़ॉन्ट रंग खो गया क्योंकि getSelectedHtml() केवल चयनित टेक्स्ट देता है। लेकिन यह अन्य ब्राउज़रों के साथ ठीक काम करता है।

नोट: यदि सामग्री "में आपका स्वागत है < अवधि style =" color है: लाल; "> नोट </span>" और चयनित शब्द है "में आपका स्वागत है नोट"। इस मामले में, यह क्रोम और अन्य ब्राउज़रों में सही होगा।

कृपया एक उचित समाधान का सुझाव दें।

उत्तर

संबंधित मुद्दे