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