<!DOCTYPE html> <html lang="zh"> <head> <meta charset="utf-8" /> <title>自定义工具栏 - Editor.md examples</title> <link rel="stylesheet" href="css/style.css" /> <link rel="stylesheet" href="../css/editormd.css" /> <link rel="shortcut icon" href="https://pandao.github.io/editor.md/favicon.ico" type="image/x-icon" /> </head> <body> <div id="layout"> <header> <h1>自定义工具栏</h1> <p>Custom toolbar (icons handler)</p> </header> <div id="test-editormd"> <textarea style="display:none;">### Custom toolbar ```javascript $(function() { var testEditor = editormd("test-editormd", { width: "90%", height: 640, path : '../lib/', toolbarIcons : function() { // Or return editormd.toolbarModes[name]; // full, simple, mini // Using "||" set icons align right. return ["undo", "redo", "|", "bold", "hr", "|", "preview", "watch", "|", "fullscreen", "info", "testIcon", "testIcon2", "file", "faicon", "||", "watch", "fullscreen", "preview", "testIcon"] }, toolbarIconsClass : { testIcon : "fa-gears" // 指定一个FontAawsome的图标类 }, toolbarIconTexts : { testIcon2 : "测试按钮" // 如果没有图标,则可以这样直接插入内容,可以是字符串或HTML标签 }, // 用于增加自定义工具栏的功能,可以直接插入HTML标签,不使用默认的元素创建图标 toolbarCustomIcons : { file : "<input type="file" accept=".md" />", faicon : "<i class="fa fa-star" onclick="alert('faicon');"></i>" }, // 自定义工具栏按钮的事件处理 toolbarHandlers : { /** * @param {Object} cm CodeMirror对象 * @param {Object} icon 图标按钮jQuery元素对象 * @param {Object} cursor CodeMirror的光标对象,可获取光标所在行和位置 * @param {String} selection 编辑器选中的文本 */ testIcon : function(cm, icon, cursor, selection) { //var cursor = cm.getCursor(); //获取当前光标对象,同cursor参数 //var selection = cm.getSelection(); //获取当前选中的文本,同selection参数 // 替换选中文本,如果没有选中文本,则直接插入 cm.replaceSelection("[" + selection + ":testIcon]"); // 如果当前没有选中的文本,将光标移到要输入的位置 if(selection === "") { cm.setCursor(cursor.line, cursor.ch + 1); } // this == 当前editormd实例 console.log("testIcon =>", this, cm, icon, cursor, selection); }, testIcon2 : function(cm, icon, cursor, selection) { cm.replaceSelection("[" + selection + ":testIcon2](" + icon.html() + ")"); console.log("testIcon2 =>", this, icon.html()); } }, lang : { toolbar : { file : "上传文件", testIcon : "自定义按钮testIcon", // 自定义按钮的提示文本,即title属性 testIcon2 : "自定义按钮testIcon2", undo : "撤销 (Ctrl+Z)" } }, onload : function(){ $("[type=\"file\"]").bind("change", function(){ alert($(this).val()); testEditor.cm.replaceSelection($(this).val()); console.log($(this).val(), testEditor); }); } }); }); ``` </textarea> </div> </div> <script src="js/jquery.min.js"></script> <script src="../editormd.js"></script> <!-- 多语言和自定义工具栏的整合测试 --> <script src="../languages/en.js"></script> <script type="text/javascript"> $(function() { var testEditor = editormd("test-editormd", { width: "90%", height: 640, path : '../lib/', watch : false, toolbarIcons : function() { // Or return editormd.toolbarModes[name]; // full, simple, mini // Using "||" set icons align right. return ["undo", "redo", "|", "bold", "hr", "|", "preview", "watch", "|", "fullscreen", "info", "testIcon", "testIcon2", "file", "faicon", "||", "watch", "fullscreen", "preview", "testIcon", "file"] }, // toolbarIcons : "full", // You can also use editormd.toolbarModes[name] default list, values: full, simple, mini. toolbarIconsClass : { testIcon : "fa-gears" // 指定一个FontAawsome的图标类 }, toolbarIconTexts : { testIcon2 : "测试按钮Test button" // 如果没有图标,则可以这样直接插入内容,可以是字符串或HTML标签 }, // 用于增加自定义工具栏的功能,可以直接插入HTML标签,不使用默认的元素创建图标 toolbarCustomIcons : { file : "<input type=\"file\" accept=\".md\" />", faicon : "<i class=\"fa fa-star\" onclick=\"alert('faicon');\"></i>" }, // 自定义工具栏按钮的事件处理 toolbarHandlers : { /** * @param {Object} cm CodeMirror对象 * @param {Object} icon 图标按钮jQuery元素对象 * @param {Object} cursor CodeMirror的光标对象,可获取光标所在行和位置 * @param {String} selection 编辑器选中的文本 */ testIcon : function(cm, icon, cursor, selection) { //var cursor = cm.getCursor(); //获取当前光标对象,同cursor参数 //var selection = cm.getSelection(); //获取当前选中的文本,同selection参数 // 替换选中文本,如果没有选中文本,则直接插入 cm.replaceSelection("[" + selection + ":testIcon]"); // 如果当前没有选中的文本,将光标移到要输入的位置 if(selection === "") { cm.setCursor(cursor.line, cursor.ch + 1); } // this == 当前editormd实例 console.log("testIcon =>", this, cm, icon, cursor, selection); }, testIcon2 : function(cm, icon, cursor, selection) { cm.replaceSelection("[" + selection + ":testIcon2](" + icon.html() + ")"); console.log("testIcon2 =>", this, icon.html()); } }, lang : { toolbar : { file : "上传文件", testIcon : "自定义按钮testIcon", // 自定义按钮的提示文本,即title属性 testIcon2 : "自定义按钮testIcon2", undo : "撤销 (Ctrl+Z)" } }, onload : function(){ $("[type=\"file\"]").bind("change", function(){ alert($(this).val()); testEditor.cm.replaceSelection($(this).val()); console.log($(this).val(), testEditor); }); } }); }); </script> </body> </html>