我需要完全禁用CKEditor(4.2或4.3)中的有序和無序列表(<ul>
,<ol>
)的縮進,因爲我需要將HTML的一個非常有限的子集轉換爲另一種標記語言不支持縮進。禁用CKEditor縮進插件
我試過多種方法,但沒有任何運氣:
嘗試1:通過配置中刪除插件
config.removePlugins = 'indent,indentlist,indentblock';
我想這是不工作,因爲這些插件似乎是必需的 - 從網站構建CKEditor包時,您無法刪除它們。
通過FireBug控制檯查看時,這些插件仍然存在。甚至沒有一個自己的插件文件夾 - 看起來它們是內置於核心的。
嘗試2:覆蓋TAB鍵
我創建了一個新的插件disableTab
是完全不執行任何操作(除了return true;
上執行)。
插件被註冊爲TAB鍵的按鍵處理程序:
config.keystrokes = [
[ 9, 'disableTab' ] // disable TAB key to avoid nesting!
];
不幸的是,在一個列表(<li>
或<ol>
)的第一級壓片當插件無法正常工作。有趣的是,它在列表的第二級按下TAB(ol > li > ol > li
)時有效,它不會在第二級以下產生更多的嵌套列表。我知道我的插件是肯定執行的,因爲我在我的插件中插入了一個alert()
進行測試。至少,這是我的Firefox中發生的事情。
,但我需要完全禁用壓痕,不僅上述水平> 2
嘗試3:阻止按鍵通過blockedKeystrokes
編輯器配置:
不行的,根據即使它應該到文檔:
config.blockedKeystrokes = [ 9 ];
嘗試4:運行期間刪除按鍵
根據API文檔,此代碼應禁用按鍵,但它並不適用於某些原因:
for (instance in CKEDITOR.instances) {
var editor = CKEDITOR.instances[instance];
editor.setKeystroke(9, false);
}
任何想法如何刪除列表中的縮進CKEditor的?
我不明白爲什麼這些方法都不起作用。如果你知道爲什麼,請告訴我。
更新:
有趣的是,這段代碼我打招呼,幾乎每一個關鍵事件,除了按TAB鍵:
editor.on('key', function(e) { alert ("hi"); return false; });
因此,似乎我的設置(LinuxMint 13 [GNOME 2] + Firefox 18 + CKEditor 4.2)不會觸發TAB鍵的關鍵事件處理程序。也許縮進插件使用其他事件?模糊?
更新2:
這是一個Firefox(也許僅適用於Linux)的問題。 Chrome或Internet Explorer可以使用多種方法。
見,如果這個工程:'editorInstace.on(「鑰匙」 ,函數(e){return e.data.keyCode!=== 9;});' – epascarello