2010-05-04 82 views
1

var wgetFrame = window.frames [0] wframeDoc = wgetFrame.document;使用execCommand應用字體大小

editor.focus(); 
editor.execCommand('bold'); 
wframeDoc.execCommand('forecolor',false,'#00ff00'); 
wframeDoc.execCommand('JustifyCenter', false, null); 
wframeDoc.execCommand('fontsize', false, 15); 

(ⅰ使用上面的代碼中的CKEditor一個插件)

粗體,前景色和中間對齊,它們都corectly撕裂,選定的文本是由跨接元件

但應用時包裹所選的字體在字體元素中, 我知道這是正確的,但它需要它在一個跨度元素內

我需要知道爲什麼粗體,forecolor和JustifyCenter被span和f ontsize不是!

而且,如果有另一種方式來應用該樣式

(PS:我運行這些命令時CKEditor的初始化,即使editort不包含任何文本,當u寫definied應用的樣式)


CKEDITOR.editorConfig = function(config) { 
CKEDITOR.addStylesSet('customStyles', 
[ 
    { name: 'Header 1', element: 'h1' }, 
    { name: 'Header 2', element: 'h2' }, 
    { name: 'Header 3', element: 'h3' }, 
    { name: 'Text', element: 'p' }, 
    { name: 'Left Align', element: 'img', attributes: { 'class': 'ImageLeft'} }, 
    { name: 'Right Align', element: 'img', attributes: { 'class': 'ImageRight'} } 
]); 

};

我可以應用editor.execCommand(「Header 1」); ??

回答

1

onClick : function(value) { 
    editor.focus(); 
    editor.fire('saveSnapshot'); 

    var style = styles[ value ]; 

    if (this.getValue() == value) 
     style.remove(editor.document); 
    else 
     style.apply(editor.document); 

    editor.fire('saveSnapshot'); 
} 

在_source \插件\字體\ plugin.js我能找到一個方法來做到這一點,但它似乎有點長

editor.focus(); 
editor.fire('saveSnapshot'); 

var styles = new CKEDITOR.style({ 
    element  : 'span', 
    styles  : { 'font-size' : '#(size)' }, 
    overrides : [ { element : 'font', attributes : { 'size' : null } } ] 
}, {size: '72px'}); 

styles.apply(editor.document); 
editor.fire('saveSnapshot'); 

問題,我現在得到,是編輯的焦點,當你在編輯器中吃午餐時,你會看到應用的字體大小,但是如果你點擊編輯器外的一個元素並返回,光標就離開span style =「72px」並創建一個新的P元素