KindEditor 自定义插件:实现在内容编辑器中选中任意一张图片将其设置为文章封面缩略图
- 在需要显示编辑器的位置添加textarea输入框。
<textarea id="editor_id" name="editor_id" cols="80" rows="8">
<strong>HTML内容</strong>
</textarea>
- 在该HTML页面添加以下脚本。
<script charset="utf-8" src="/editor/kindeditor.js"></script>
<script charset="utf-8" src="/editor/lang/zh-CN.js"></script>
<script>
var editor;
KindEditor.lang({
piclinks : '设为封面缩略图'
});
KindEditor.ready(function(K) {
editor = K.create('#editor_id', {
width : '100%', // 编辑器的宽度为70%
height : '550px', // 编辑器的高度为100px
filterMode : false, // 不会过滤HTML代码
resizeMode : 0,
pasteType : 1,
resizeType : 2,
items : ['source', '|', 'fullscreen', 'undo', 'redo', 'print', 'cut', 'copy',
'paste','plainpaste', 'wordpaste', '|', 'justifyleft', 'justifycenter',
'justifyright', 'justifyfull', 'insertorderedlist', 'insertunorderedlist',
'indent', 'outdent', 'subscript','superscript', '|', 'selectall', '/',
'formatblock', 'fontname', 'fontsize', '|', 'forecolor', 'hilitecolor',
'bold','italic', 'underline', 'strikethrough', 'lineheight', 'removeformat',
'|', 'image', 'media', 'table', 'hr', 'emoticons', 'link', 'unlink', '|',
'about','piclinks']
});
});
</script>
定
- 在KindEditor的目录下添加plugins/piclinks/piclinks.js文件。
piclinks.js代码如下:
KindEditor.plugin('piclinks', function(K) { var editor = this, name = 'piclinks'; // 点击图标时执行 editor.clickToolbar(name, function() { debugger var html = editor.selectedHtml(); if(html==""||html==null ||$(html)[0]==undefined){ alert("请选中一张图片!"); return false; } if(($(html)[0].tagName=="P" || $(html)[0].tagName!="IMG") && $(html).find("img").length<=0){ alert("请选中一张图片!"); return false; } if($(html).find("img").length>1){ alert("只能选择一张图片作为封面缩略图!"); return false; } var imgSrc; if($(html)[0].tagName=="IMG"){ imgSrc=$(html).attr("src"); }else{ imgSrc=$(html).find("img").attr("src"); } var imgName=imgSrc.substring(imgSrc.lastIndexOf(".")-5); $("#imageList").html("<a href='"+imgSrc+"' target='_blank' >"+imgName+"</a>"); var inputValue=imgSrc.substring(imgSrc.indexOf("/data")); $("#piclinks").val(inputValue); }); });
- 4.定义工具栏图标的CSS,在页面的<style>标签里添加以下CSS
.ke-icon-piclinks {
background-image: url(../skins/default/default.gif);
background-position: 0px -672px;
width: 16px;
height: 16px;
}
完整代码:
<!doctype html> <html> <head> <meta charset="utf-8" /> <title>Piclinks</title> <style> .ke-icon-piclinks { background-image: url(../skins/default/default.gif); background-position: 0px -672px; width: 16px; height: 16px; } </style> <link rel="stylesheet" href="../themes/default/default.css" /> <script charset="utf-8" src="../kindeditor.js"></script> <script charset="utf-8" src="../lang/zh-CN.js"></script> <script> var editor; KindEditor.lang({ piclinks : '设为封面缩略图' }); KindEditor.ready(function(K) { editor = K.create('#editor_id', { width : '100%', // 编辑器的宽度为70% height : '550px', // 编辑器的高度为100px filterMode : false, // 不会过滤HTML代码 resizeMode : 0, pasteType : 1, resizeType : 2, items : ['source', '|', 'fullscreen', 'undo', 'redo', 'print', 'cut', 'copy', 'paste','plainpaste', 'wordpaste', '|', 'justifyleft', 'justifycenter', 'justifyright', 'justifyfull', 'insertorderedlist', 'insertunorderedlist', 'indent', 'outdent', 'subscript','superscript', '|', 'selectall', '/', 'formatblock', 'fontname', 'fontsize', '|', 'forecolor', 'hilitecolor', 'bold','italic', 'underline', 'strikethrough', 'lineheight', 'removeformat', '|', 'image', 'media', 'table', 'hr', 'emoticons', 'link', 'unlink', '|', 'about','piclinks'] }); }); </script> </head> <body> <textarea id="editor_id" name="editor_id" cols="80" rows="8"> </body> </html>
实现效果: