编写Editor插件

Source
Output
QRCode
<!doctype html> <html> <head> <meta charset="utf-8"/> <meta name="viewport" content="width=device-width,initial-scale=1"> <title>编写Editor插件</title> <link rel="stylesheet" type="text/css" href="//g.alicdn.com/kissy/k/5.0.1/css/base.css"> <link rel="stylesheet" type="text/css" href="http://g.tbcdn.cn/kg/editor-plugins/1.1.3/assets/editor.css"> <!--引入editor的插件样式--> <script src="//g.alicdn.com/kissy/k/5.0.1/seed.js" data-config="{combine:false}"></script> <script type="text/javascript" src="http://g.tbcdn.cn/kg/editor-plugins/1.1.3/mods.js"></script> <!-- 引入插件模块依赖表避免模块串行加载,优化性能--> </head> <body> <h1>编写Editor插件</h1> <div id="container"> </div> <script type="text/javascript"> require.config({ packages : [ { name : 'kg', //1.1.3是当前editor-plugins的版本号,使用时请选择对应的版本号 base : 'http://g.tbcdn.cn/kg/' } ] }); define('my/plugins', ['kg/editor-plugins/1.1.3/button'], function (require,exports,module) { var Button = require('kg/editor-plugins/1.1.3/button'); // 自定义插件 function Plugin1(cfg) { this.config = cfg || {}; } Plugin1.prototype.pluginRenderUI = function (editor) { var cfg = this.config; editor.addButton("plugin1", { content: '<div style="margin: 2px;border: 1px solid red;padding: 1px;">p1</div>', listeners: { click: function () { editor.insertHtml(cfg.content); } } }); }; function Plugin2() { } Plugin2.prototype.pluginRenderUI = function (editor) { editor.addButton("plugin2", { content: '<div style="margin: 2px;border: 1px solid red;padding: 1px;">p2</div>', listeners: { click: function () { alert('Plugin2 is running') } } }); }; module.exports = { Plugin1: Plugin1, Plugin2: Plugin2 }; }); require(['editor','my/plugins'], function(Editor, MyPlugins){ var myEditor = new Editor({ render : '#container', focused : true, textareaAttrs : { name : 'my-textarea' }, plugins : [ new MyPlugins.Plugin1({ content : 'content of Plugin1' }), MyPlugins.Plugin2 ] }); myEditor.render(); }) </script> </body> </html>