2011-11-14 43 views
0

我需要將h1,h2,h3標籤添加到ckeditor的鍵綁定中,並且我發現了這個簡單的功能。
此功能正常工作正常,但我只能使用它一次,如果我複製相同的功能到另一個目錄,並試圖包括它,它不起作用。我究竟做錯了什麼?如何在ckeditor中使用多個插件?

地點:插件/按鈕-H1/plugin.js

var a= { 
    exec:function(editor){ 
    var format = { 
    element : "h1" 
    }; 
    var style = new CKEDITOR.style(format); 
     style.apply(editor.document); 
    } 
}, 

// Add the plugin 
b="button-h1"; 
CKEDITOR.plugins.add(b,{ 
    init:function(editor){ 
    editor.addCommand(b,a); 
    editor.ui.addButton("button-h1",{ 
    label:"Button H1", 
    icon: this.path + "button-h1.png", 
    command:b 
    }); 
} 
}); 

但是當我創建了一個名爲另一個文件夾內的另一個插件「按鈕-H2」,代碼相同,但不同的名稱和標記,它不起作用。

地點:插件/按鈕-H2/plugin.js

// Exactly the same as above, but with "h2" tags. 
var a= { 
    exec:function(editor){ 
    var format = { 
    element : "h2" 
    }; 
    var style = new CKEDITOR.style(format); 
     style.apply(editor.document); 
    } 
}, 

// Add the plugin 
b="button-h2"; 
CKEDITOR.plugins.add(b,{ 
    init:function(editor){ 
    editor.addCommand(b,a); 
    editor.ui.addButton("button-h2",{ 
    label:"Button H2", 
    icon: this.path + "button-h2.png", 
    command:b 
    }); 
} 
}); 

基本上,我需要一個用戶能夠用 「CTRL + 1」 加在選擇的文本標題標籤。
此方法有效,但我只能將其用於其中一個標題,H1或H2,而不是兩個或更多。

在我的config.js,我有以下設置一切。

config.extraPlugins = "button-h1,button-h2"; 
config.keystrokes = 
[ 
    [ CKEDITOR.CTRL + 49 /*1*/, 'button-h1' ], 
    [ CKEDITOR.CTRL + 50 /*2*/, 'button-h2' ] 

]; 

所以,
- 該插件,但我只能用它H1 H2或,不是兩個,爲什麼?
我是否需要將它放在一個函數或其他東西中,以便它可以同時執行多次?

回答

0

我找到了答案。我需要用匿名函數來包裝它。

(function(){ 
var a= 
{ 
    exec:function(editor){ 
     var format = { 
     element : "h1" 
     }; 
    var style = new CKEDITOR.style(format); 
    style.apply(editor.document); 
    } 
}, 

b="tags-h1"; 
CKEDITOR.plugins.add(b,{ 
    init:function(editor){ 
    editor.addCommand(b,a); 
    editor.ui.addButton(b,{ 
    label:"Heading 1", 
    icon: this.path + "heading-1.png", 
    command:b 
    }); 
    } 
}); 
})();