如图:有2种自定义方法,一种是改源码,一种是初始化

初始化,如下代码:

var ue = UE.getEditor('XXXid',{
//
contextMenu:[
{label:'', cmdName:'selectall'},
{
label:'',
cmdName:'cleardoc',
exec:function () {
this.execCommand( 'cleardoc' );
}
},
{label:'这里添加一个菜单',cmdName:'cleardoc',
icon:'aligntd',
exec:function () {
//this.execCommand( 'cleardoc' );
console.log("添加一个菜单");
}
},
'-',
{
cmdName:'unlink'
},
'-',
{
group:'',
icon:'justifyjustify',
subMenu:[
{
label:'',
cmdName:'justify',
value:'left'
},
{
label:'',
cmdName:'justify',
value:'right'
},
{
label:'',
cmdName:'justify',
value:'center'
},
{
label:'',
cmdName:'justify',
value:'justify'
}
]
},
'-',
{
group:'',
icon:'table',
subMenu:[
{
label:'',
cmdName:'inserttable'
},
{
label:'',
cmdName:'deletetable'
},
'-',
{
label:'',
cmdName:'deleterow'
},
{
label:'',
cmdName:'deletecol'
},
{
label:'',
cmdName:'insertcol'
},
{
label:'',
cmdName:'insertcolnext'
},
{
label:'',
cmdName:'insertrow'
},
{
label:'',
cmdName:'insertrownext'
},
'-',
{
label:'',
cmdName:'insertcaption'
},
{
label:'',
cmdName:'deletecaption'
},
{
label:'',
cmdName:'inserttitle'
},
{
label:'',
cmdName:'deletetitle'
},
{
label:'',
cmdName:'inserttitlecol'
},
{
label:'',
cmdName:'deletetitlecol'
},
'-',
{
cmdName:'mergecells'
},
{
cmdName:'mergeright'
},
{
cmdName:'mergedown'
},
'-',
{
cmdName:'splittorows'
},
{
cmdName:'splittocols'
},
{
cmdName:'splittocells'
},
'-',
{
cmdName:'averagedistributerow'
},
{
cmdName:'averagedistributecol'
},
'-',
{
cmdName:'edittd',
exec:function () {
if ( UE.ui['edittd'] ) {
new UE.ui['edittd']( this );
}
this.getDialog('edittd').open();
}
},
{
cmdName:'edittable',
exec:function () {
if ( UE.ui['edittable'] ) {
new UE.ui['edittable']( this );
}
this.getDialog('edittable').open();
}
},
{
cmdName:'setbordervisible'
}
]
},
{
group:'',
icon:'tablesort',
subMenu:[
{
cmdName:'enablesort'
},
{
cmdName:'disablesort'
},
'-',
{
cmdName:'sorttable',
value:'reversecurrent'
},
{
cmdName:'sorttable',
value:'orderbyasc'
},
{
cmdName:'sorttable',
value:'reversebyasc'
},
{
cmdName:'sorttable',
value:'orderbynum'
},
{
cmdName:'sorttable',
value:'reversebynum'
}
]
},
{
group:'',
icon:'borderBack',
subMenu:[
{
cmdName:"interlacetable",
exec:function(){
this.execCommand("interlacetable");
}
},
{
cmdName:"uninterlacetable",
exec:function(){
this.execCommand("uninterlacetable");
}
},
{
cmdName:"settablebackground",
exec:function(){
this.execCommand("settablebackground",{repeat:true,colorList:["#bbb","#ccc"]});
}
},
{
cmdName:"cleartablebackground",
exec:function(){
this.execCommand("cleartablebackground");
}
},
{
cmdName:"settablebackground",
exec:function(){
this.execCommand("settablebackground",{repeat:true,colorList:["red","blue"]});
}
},
{
cmdName:"settablebackground",
exec:function(){
this.execCommand("settablebackground",{repeat:true,colorList:["#aaa","#bbb","#ccc"]});
}
}
]
},
{
group:'',
icon:'aligntd',
subMenu:[
{
cmdName:'cellalignment',
value:{align:'left',vAlign:'top'}
},
{
cmdName:'cellalignment',
value:{align:'center',vAlign:'top'}
},
{
cmdName:'cellalignment',
value:{align:'right',vAlign:'top'}
},
{
cmdName:'cellalignment',
value:{align:'left',vAlign:'middle'}
},
{
cmdName:'cellalignment',
value:{align:'center',vAlign:'middle'}
},
{
cmdName:'cellalignment',
value:{align:'right',vAlign:'middle'}
},
{
cmdName:'cellalignment',
value:{align:'left',vAlign:'bottom'}
},
{
cmdName:'cellalignment',
value:{align:'center',vAlign:'bottom'}
},
{
cmdName:'cellalignment',
value:{align:'right',vAlign:'bottom'}
}
]
},
{
group:'',
icon:'aligntable',
subMenu:[
{
cmdName:'tablealignment',
className: 'left',
label:'',
value:"left"
},
{
cmdName:'tablealignment',
className: 'center',
label:'',
value:"center"
},
{
cmdName:'tablealignment',
className: 'right',
label:'',
value:"right"
}
]
},
'-',
{
label:'前插入段落',
cmdName:'insertparagraph',
value:true
},
{
label:'后插入段落',
cmdName:'insertparagraph'
},
{
cmdName:'copy'
},
{
cmdName:'paste'
}
]
//
});

以上在初始化时调用,即可覆盖源功能

下面看改源码在哪里:

一、ueditor.config.js 找到:

取消菜单在这    //,enableContextMenu:
*确定是注释掉的,开启就没有菜单了 下面解开:,contextMenu:........... 里面格式参考以下二部分。 二、具体源码在这里:ueditor.all.js找到 UE.plugins['contextmenu'] = function () { 格式参考如下:
{label:lang['selectall'], cmdName:'selectall'},
{
label:lang.cleardoc,
cmdName:'cleardoc',
exec:function () {
if ( confirm( lang.confirmclear ) ) {
this.execCommand( 'cleardoc' );
}
}
},
'-',
{
label:lang.unlink,
cmdName:'unlink'
},

对于二级菜单标签label改不了,可以找到下面代码处,加一个case项:

case "macro":
return "宏";



ueditor 百度编辑器,自定义右键菜单的更多相关文章

  1. ueditor 百度编辑器 自定义图片上传路径和格式化上传文件名

    今天项目中需要自定义图片上传的保存路径,并且不需要按照日期自动创建存储文件夹和文件名,我的ueditor版本是1.3.6.下面记录一下我配置成功的方法,如果有什么不对的地方欢迎指出,共同学习: 1:我 ...

  2. ASP.NET Aries 入门开发教程8:树型列表及自定义右键菜单

    前言: 前面几篇重点都在讲普通列表的相关操作. 本篇主要讲树型列表的操作. 框架在设计时,已经把树型列表和普通列表全面统一了操作,用法几乎是一致的. 下面介绍一些差距化的内容: 1:树型列表绑定: v ...

  3. JavaScript自定义右键菜单

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  4. 自定义右键菜单,禁用浏览器自带的右键菜单[右键菜单实现--Demo]

    许多从事Web开发的会发现有些事,我们需要禁用浏览器本事自带的右键菜单,而实现自定义的右键菜单下面我们也来实现一个自定义的右键菜单 首先来创建JSP页面 <%@ page language=&q ...

  5. JS简单实现自定义右键菜单

    RT,一个简单的例子,仅仅讲述原理 <div id="menu" style="width: 0;height: 0;background: cadetblue;p ...

  6. antd Tree组件中,自定义右键菜单

    最近项目中,有一个需求是自定义antd的Tree组件的右键菜单功能. 直接上代码 class Demo extends Component { state = { rightClickNodeTree ...

  7. 织梦替换ueditor百度编辑器,支持图片水印 教程

    1下载ueditor百度编辑器 2 把下载的zip解压得到ueditor文件夹,把解压到的ueditor文件夹扔进你网站的include文件夹去 3 打开 /include/inc/inc_fun_f ...

  8. AS3.0 自定义右键菜单类

    AS3.0 自定义右键菜单类: /** * 自定义右键菜单类 * 自定义菜单项不得超过15个,每个标题必须至少包含一个可见字符. * 标题字符不能超过100个,并且开头的空白字符会被忽略. * 与任何 ...

  9. js之自定义右键菜单

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. [ActionScript 3.0] 自定义右键菜单

    将自定义右键菜单的一些属性和方法归纳到AddRightMenu.as,通过实例化此类,调用相关方法即可测试! package { import flash.display.Sprite; import ...

随机推荐

  1. [日常工作]Oracle12cr2在日常工作中遇到的不兼容的问题

    Oracle12c 数据库GS实例时需要使用新驱动,避免制单出现获取不到正确凭证编号内码的问题. Oracle12c 会产生大量的隐藏表,部分ddl语句会报错. Oracle12c 删除了VM_con ...

  2. Mark 韦氏拼音 邮政式拼音 和汉语拼音

    一直感觉很多大学名字不像是汉语拼音也不像是英文,百度了下原来是三种不同的拼音方式: 转载百度百科: 邮政式拼音和威妥玛拼音法并未完全消失.北京大学(Peking University).清华大学(Ts ...

  3. laravel 共享session问题总结

    我现在有一个A系统已经上线了,但是要开始研发另外一个功能,我打算把这个功能独立成一个B系统出来,放在其他域名下面,打算在这个A系统登录后,里面一个连接跳转到B系统,看到一些资料说用到共享Session ...

  4. Java微信二次开发(六)

    Token定时获取 需要导入库:添加log4j(slf4j-api-1.5.10.jar,slf4j-log4j12-1.5.10.jar,log4j-1.2.15.jar,并且在src下添加log4 ...

  5. C++拷贝构造函数与 = 重载

    调用拷贝构造函数进行初始化的时候,是不会调用=重载的. // test.cpp : 定义控制台应用程序的入口点. // //#include "stdafx.h" #include ...

  6. 深入理解Adaboost算法

    理解算法确实是欲速则不达,唯有一步一步慢慢看懂,然后突然觉得写的真的太好了,那才是真的有所理解了. Adaboost的两点关键点: 1. 如何根据弱模型的表现更新训练集的权重: 2. 如何根据弱模型的 ...

  7. 【bzoj2007】 Noi2010—海拔

    http://www.lydsy.com/JudgeOnline/problem.php?id=2007 (题目链接) 题意 $(n+1)*(n+1)$的网格图上,相邻两点间有一些人流.左上角点的海拔 ...

  8. UVALive - 6442 (思维题)

    题目链接:https://vjudge.net/contest/241341#problem/I 题目大意:给你一个有N个点等距的环,编号[0,N-1],然后有些点上有一个或多个硬币,通过移动这些硬币 ...

  9. hdu5791(DP)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5791 参考博客:https://blog.csdn.net/wuxuanyi27/article/de ...

  10. JavaScript中解决jQuery和Prototype.js同时引入冲突问题

    两个库同时都定义了一个叫$的函数,所以在同时使用的时候会发生冲突.jQuery( http://jquery.com/ https://jquery.org/ )中提供了一种返还$的使用权给其他js库 ...