- 编辑器提供 跨前端框架的 通用右键菜单快速实现组件
使用 外置菜单组件
- step1: 禁用内置右键菜单 useInnerMenuBox: false
- step2: 为每1个ThinkEditor加载外置右键菜单 new ThinkEditorContextMenu()
let editorParam = {
...
useInnerMenuBox: false,
...
};
let thinkEditor = new ThinkEditor(editorParam);
let ctxMenu = new ThinkEditorContextMenu({thinkEditor: thinkEditor});
添加菜单项
- 在onCreateMenu回调函数中,在现有菜单项currentMenu的基础上增加自定义项
- action应当唯一
ctxMenu.onCreateMenu = function (currentMenu) {
console.warn("用户自定义 右键菜单");
currentMenu.push(
{
action: "userDefine1",
text: "用户自定义1",
enable: true,
},
{
action: "userDefine2",
text: "用户自定义2",
enable: true,
}
);
return currentMenu;
};
自定义菜单项-按下事件处理
自定义 菜单图标
方式一: URL图标映射表 iconUrlMap
参数名 |
必填 |
类型 |
说明 |
备注 |
iconUrlPath |
是 |
string |
URL图标资源所在目录 |
|
iconUrlMap |
否 |
map<string /action/, string/iconRes/> |
菜单项action与图标的对应关系 |
|
let iconUrlMap = {
copy: "icon-copy@64.png",
cut: "icon-cut@64.png",
paste: "icon-paste@64.png",
pasteText: "icon-paste-text@64.png",
};
方式二:Symbol图标映射表 iconMap
参数名 |
必填 |
类型 |
说明 |
备注 |
iconMap |
否 |
map<string /action/, string/iconRes/> |
菜单项action与图标的对应关系 |
|
let iconMap = {
copy: "icon-copy",
cut: "icon-cut",
paste: "icon-paste",
pasteText: "icon-paste-text",
};
使用示例
this.LoadContextMenu(thinkEditor);
应用自行封装示例
function LoadContextMenu(thinkEditor) {
let ctxMenu = new ThinkEditorContextMenu({
thinkEditor: thinkEditor,
menuIconMap: { userDefine1: "icon-relieve-merge@64.png", userDefine2: "aaaa" },
});
ctxMenu.onCreateMenu = function (currentMenu) {
console.warn("用户自定义 右键菜单");
currentMenu.push(
{
action: "userDefine1",
text: "用户自定义1",
enable: true,
},
{
action: "userDefine2",
text: "用户自定义2",
enable: true,
}
);
return currentMenu;
};
ctxMenu.onMenuAction = function (action, index) {
console.warn(`用户自定义${action}右键菜单被按下`);
};
}
文档更新时间: 2025-08-21 09:38 作者:admin