2016-06-01 8 views
0

Dieses Stück Code wird nichtCKEditor nicht speichern/Parse-Breite/Höhe in Attribute und Stile gleichzeitig

<img src="/images/test.jpg" height="300" width="450" style="width: 350px; height: auto;" /> 

im Quellmodus speichern Wenn ich diesen Modus in Quelle setzen, und klicken Sie wieder auf WYSIWYG-Modus, CKEditor streift Höhen-/Breitenattribute. Dies ist, was ich sehe, dann

<img src="/images/test.jpg" style="width: 350px; height: auto;" /> 

Aber ich brauche es beiden Stile und attrubutes zu speichern (Stil Höhe/Breite und Attribute Höhe/Breite).

config.allowedContent = true; 

Ich habe versucht, diese Konfiguration unter Verwendung, aber es nicht

config.allowedContent = 'img{*}[*](*)' 

Ich habe auch versucht

funktioniert und es hat funktioniert, aber mein config.disallowedContent dann nicht funktionieren. Ich glaube, der Editor ignoriert Stile und/oder Attribute (was immer zuerst geht?) Während HTML-Code Parcing.

+0

'allowedExtraContent' ist das, was Sie festlegen, und allowContent ist ein boolescher Wert. – epascarello

+0

http://StackOverflow.com/Questions/15659390/Geditor-Automatically-Strips-Classes-From-Div/15659962#15659962 – epascarello

Antwort

0

Ich habe endlich die Antwort für meine Frage gefunden. Hier ist der Code in /ckeditor.js, in dem ich eine Zeile kommentiert

contentTransformations: [ 
    // ["img{width}: sizeToStyle", "img[width]: sizeToAttribute"], 
    ["img{float}: alignmentToStyle", "img[align]: alignmentToAttribute"] 
] 

Auch in einer anderen Datei ich den folgenden Code hinzugefügt:

evt.editor.dataProcessor.htmlFilter.addRules({ 
elements: { 
    $: function(element) { 
     if (element.name == 'img') { 
      if (element.attributes.style) { 
       var match = /(?:^|\s)width\s*:\s*((\d+)(pt|in|px)|auto|initial|inherit)/i.exec(element.attributes.style), 
        width = match && (match[2] || match[1]); 

       if(width && !element.attributes.width) { 
        element.attributes.width = width; 
        element.attributes.style = element.attributes.style.replace(/(width\s*:\s*(\d+(pt|in|px)|auto|initial|inherit))/i, ""); 
       } 

       match = /(?:^|\s)height\s*:\s*((\d+)(pt|in|px)|auto)/i.exec(element.attributes.style); 
       var height = match && (match[2] || match[1]); 

       if(height && !element.attributes.height) { 
        element.attributes.height = height; 
        element.attributes.style = element.attributes.style.replace(/(height\s*:\s*(\d+(pt|in|px)|auto|initial|inherit))/i, ""); 
       } 
      } 
     } 
     return element; 
    } 
} 

});