PageRenderTime 49ms CodeModel.GetById 23ms RepoModel.GetById 1ms app.codeStats 0ms

/docs/source/smiley.html

https://github.com/jiang-nan/kissy
HTML | 114 lines | 107 code | 7 blank | 0 comment | 0 complexity | 82f5c9894483e2462f814a017d0b8f4b MD5 | raw file
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>The source code</title>
  6. <link href="../resources/prettify/prettify.css" type="text/css" rel="stylesheet" />
  7. <script type="text/javascript" src="../resources/prettify/prettify.js"></script>
  8. <style type="text/css">
  9. .highlight { display: block; background-color: #ddd; }
  10. </style>
  11. <script type="text/javascript">
  12. function highlight() {
  13. document.getElementById(location.hash.replace(/#/, "")).className = "highlight";
  14. }
  15. </script>
  16. </head>
  17. <body onload="prettyPrint(); highlight();">
  18. <pre class="prettyprint lang-js"><span id='global-property-'>/**
  19. </span> * @ignore
  20. * smiley button
  21. * @author yiminghe@gmail.com
  22. */
  23. KISSY.add(&quot;editor/plugin/smiley&quot;, function (S, Editor, Overlay4E) {
  24. var smiley_markup = &quot;&lt;div class='{prefixCls}editor-smiley-sprite'&gt;&quot;;
  25. for (var i = 0; i &lt;= 98; i++) {
  26. smiley_markup += &quot;&lt;a href='javascript:void(0)' &quot; +
  27. &quot;data-icon='http://a.tbcdn.cn/sys/wangwang/smiley/48x48/&quot; + i + &quot;.gif'&gt;&quot; +
  28. &quot;&lt;/a&gt;&quot;
  29. }
  30. smiley_markup += &quot;&lt;/div&gt;&quot;;
  31. function Smiley() {
  32. }
  33. S.augment(Smiley, {
  34. pluginRenderUI: function (editor) {
  35. var prefixCls = editor.get('prefixCls');
  36. editor.addButton(&quot;smiley&quot;, {
  37. tooltip: &quot;插入表情&quot;,
  38. checkable: true,
  39. listeners: {
  40. afterSyncUI: function () {
  41. var self = this;
  42. self.on(&quot;blur&quot;, function () {
  43. // make click event fire
  44. setTimeout(function () {
  45. self.smiley &amp;&amp; self.smiley.hide();
  46. }, 150);
  47. });
  48. },
  49. click: function () {
  50. var self = this, smiley, checked = self.get(&quot;checked&quot;);
  51. if (checked) {
  52. if (!(smiley = self.smiley)) {
  53. smiley = self.smiley = new Overlay4E({
  54. content: S.substitute(smiley_markup, {
  55. prefixCls: prefixCls
  56. }),
  57. focus4e: false,
  58. width: 300,
  59. elCls: prefixCls + &quot;editor-popup&quot;,
  60. zIndex: Editor.baseZIndex(Editor.ZIndexManager.POPUP_MENU),
  61. mask: false
  62. }).render();
  63. smiley.get(&quot;el&quot;).on(&quot;click&quot;, function (ev) {
  64. var t = new S.Node(ev.target),
  65. icon;
  66. if (t.nodeName() == &quot;a&quot; &amp;&amp;
  67. (icon = t.attr(&quot;data-icon&quot;))) {
  68. var img = new S.Node(&quot;&lt;img &quot; +
  69. &quot;alt='' src='&quot; +
  70. icon + &quot;'/&gt;&quot;, null,
  71. editor.get(&quot;document&quot;)[0]);
  72. editor.insertElement(img);
  73. }
  74. });
  75. smiley.on(&quot;hide&quot;, function () {
  76. self.set(&quot;checked&quot;, false);
  77. });
  78. }
  79. smiley.set(&quot;align&quot;, {
  80. node: this.get(&quot;el&quot;),
  81. points: [&quot;bl&quot;, &quot;tl&quot;],
  82. overflow: {
  83. adjustX: 1,
  84. adjustY: 1
  85. }
  86. });
  87. smiley.show();
  88. } else {
  89. self.smiley &amp;&amp; self.smiley.hide();
  90. }
  91. },
  92. destroy: function () {
  93. if (this.smiley) {
  94. this.smiley.destroy();
  95. }
  96. }
  97. },
  98. mode: Editor.Mode.WYSIWYG_MODE
  99. });
  100. }
  101. });
  102. return Smiley;
  103. }, {
  104. requires: ['editor', './overlay']
  105. });</pre>
  106. </body>
  107. </html>