1 /** 2 * smiley button 3 * @author yiminghe@gmail.com 4 */ 5 KISSY.add("editor/plugin/smiley/index", function (S, Editor, Overlay4E) { 6 7 var smiley_markup = "<div class='ks-editor-smiley-sprite'>"; 8 for (var i = 0; i <= 98; i++) { 9 smiley_markup += "<a href='javascript:void(0)' " + 10 "data-icon='http://a.tbcdn.cn/sys/wangwang/smiley/48x48/" + i + ".gif'>" + 11 "</a>" 12 } 13 smiley_markup += "</div>"; 14 15 function Smiley() { 16 } 17 18 S.augment(Smiley, { 19 init:function (editor) { 20 editor.addButton("smiley", { 21 tooltip:"插入表情", 22 checkable:true, 23 listeners:{ 24 afterSyncUI:function () { 25 var self = this; 26 self.on("blur", function () { 27 // make click event fire 28 setTimeout(function () { 29 self.smiley && self.smiley.hide(); 30 }, 150); 31 }); 32 33 }, 34 click:function () { 35 var self = this, smiley, checked = self.get("checked"); 36 if (checked) { 37 if (!(smiley = self.smiley)) { 38 smiley = self.smiley = new Overlay4E({ 39 content:smiley_markup, 40 focus4e:false, 41 width:"297px", 42 autoRender:true, 43 elCls:"ks-editor-popup", 44 zIndex:Editor.baseZIndex(Editor.zIndexManager.POPUP_MENU), 45 mask:false 46 }); 47 smiley.get("el").on("click", function (ev) { 48 var t = new S.Node(ev.target), 49 icon; 50 if (t.nodeName() == "a" && 51 (icon = t.attr("data-icon"))) { 52 var img = new S.Node("<img " + 53 "alt='' src='" + 54 icon + "'/>", null, 55 editor.get("document")[0]); 56 editor.insertElement(img); 57 } 58 }); 59 smiley.on("hide", function () { 60 self.set("checked", false); 61 }); 62 } 63 smiley.set("align", { 64 node:this.get("el"), 65 points:["bl", "tl"] 66 }); 67 smiley.show(); 68 } else { 69 self.smiley && self.smiley.hide(); 70 } 71 }, 72 destroy:function () { 73 if (this.smiley) { 74 this.smiley.destroy(); 75 } 76 } 77 78 }, 79 mode:Editor.WYSIWYG_MODE 80 }); 81 } 82 }); 83 84 return Smiley; 85 }, { 86 requires:['editor', '../overlay/'] 87 });