2010-05-04 83 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元素