123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- <!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>
|