/** * @description 编辑区域 tab 的特殊处理 * @author wangfupeng */ import Editor from '../../editor/index' /** * 编辑区域 tab 的特殊处理,转换为空格 * @param editor 编辑器实例 * @param tabDownEvents tab down 事件钩子 */ function tabHandler(editor: Editor, tabDownEvents: Function[]) { // 定义函数 function fn() { if (!editor.cmd.queryCommandSupported('insertHTML')) { // 必须原生支持 insertHTML 命令 return } const $selectionElem = editor.selection.getSelectionContainerElem() if (!$selectionElem) { return } const $parentElem = $selectionElem.parent() const selectionNodeName = $selectionElem.getNodeName() const parentNodeName = $parentElem.getNodeName() if ( selectionNodeName == 'CODE' || parentNodeName === 'CODE' || parentNodeName === 'PRE' || /hljs/.test(parentNodeName) ) { //
里面
editor.cmd.do('insertHTML', editor.config.languageTab)
} else {
// 普通文字
editor.cmd.do('insertHTML', ' ')
}
}
// 保留函数
tabDownEvents.push(fn)
}
export default tabHandler