####前言
- 『插入符號』菜單是一個dropPanel類型的菜單,因為點擊它要彈出一個面板Panel,然后再進行其他操作。
- 『插入符號』菜單的擴展過程和『縮進』菜單一樣,除了`custom-menu.js`的內容不一樣。**所以請先閱讀上一節『縮進』菜單的創建過程。**
- 因此,本節直接略過其他過程,直接分析`custom-menu.js`文件源碼。
-----
####編寫 `custom-menu.js`
直接貼出`custom-menu.js`的源碼,里面有非常詳細的注釋。
```js
(function () {
// 獲取 wangEditor 構造函數和 jquery
var E = window.wangEditor;
var $ = window.jQuery;
// 用 createMenu 方法創建菜單
E.createMenu(function (check) {
// 定義菜單id,不要和其他菜單id重復。編輯器自帶的所有菜單id,可通過『參數配置-自定義菜單』一節查看
var menuId = 'symbol';
// check將檢查菜單配置(『參數配置-自定義菜單』一節描述)中是否該菜單id,如果沒有,則忽略下面的代碼。
if (!check(menuId)) {
return;
}
// this 指向 editor 對象自身
var editor = this;
// 創建 menu 對象
var menu = new E.Menu({
editor: editor, // 編輯器對象
id: menuId, // 菜單id
title: '符號', // 菜單標題
// 正常狀態和選中裝下的dom對象,樣式需要自定義
$domNormal: $('<a href="#" tabindex="-1"><i class="wangeditor-menu-img-omega"></i></a>'),
$domSelected: $('<a href="#" tabindex="-1" class="selected"><i class="wangeditor-menu-img-omega"></i></a>')
});
// 要插入的符號(可自行添加)
var symbols = ['∑', '√', '∫', '∏', '≠', '♂', '♀']
// panel 內容
var $container = $('<div></div>');
$.each(symbols, function (k, value) {
$container.append('<a href="#" style="display:inline-block;margin:5px;">' + value + '</a>');
});
// 插入符號的事件
$container.on('click', 'a', function (e) {
var $a = $(e.currentTarget);
var s = $a.text();
// 執行插入的命令
editor.command(e, 'insertHtml', s);
});
// 添加panel
menu.dropPanel = new E.DropPanel(editor, menu, {
$content: $container,
width: 350
});
// 增加到editor對象中
editor.menus[menuId] = menu;
});
})();
```
####效果
運行頁面的效果如下

- 關于wangEditor
- 遇到問題如何解決和提問【重要】
- 開始使用
- 下載
- 創建頁面
- 生成編輯器(使用ID)
- 生成編輯器(使用element)
- 調整尺寸
- 銷毀與恢復
- 一個頁面多個編輯器
- 內容處理
- 初始化內容
- 獲取內容
- 追加內容
- 清空內容
- 用 editor.$txt 做其他內容處理
- onchange事件
- 禁用/啟用
- 參數配置
- 自定義菜單
- 自定義顏色、字體、字號
- 自定義表情
- 切換語言
- 百度地圖key
- 菜單欄吸頂
- 配置全屏的z-index
- 關閉瀏覽器打印log
- 關閉過濾javascript
- 關閉粘貼過濾樣式
- 只粘貼純文本
- 插入代碼-配置默認語言
- 自定義編輯器樣式
- 自定義顏色
- 自定義菜單UI
- 自定義表格、引用、代碼的樣式
- 代碼高亮樣式
- 圖片上傳
- 使用前必讀
- 支持情況
- 配置說明
- log提示輔助排錯
- 后臺代碼示例
- C#
- java - 例1
- java - 例2
- php
- nodejs
- python
- 自定義上傳事件
- 集成plupload插件
- 集成七牛云存儲
- 跨域上傳
- 上傳圖片出錯時的解決步驟
- 使用模塊定義
- 使用require.js
- 使用seajs
- 使用webpack
- 插件開發
- 對象結構
- 常用API
- 全局API
- 對象API
- 基礎API
- 選區API
- 命令API
- 擴展一個菜單
- 『縮進』菜單
- 『行高』菜單
- 『插入符號』菜單
- 開發一個插件
- 常見問題
- 關于markdown
- 關于上傳附件
- 關于背景圖片
- 關于顯示壓縮圖片
- 集成到React
- 集成到angular
- 集成到vue.js
- 如何避免與項目中的css沖突
- xss過濾
- 如何插入視頻鏈接
- 關于mobile端編輯器
- 查看源碼第一行有空格