template.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. ///import core
  2. ///import plugins\inserthtml.js
  3. ///import plugins\cleardoc.js
  4. ///commands 模板
  5. ///commandsName template
  6. ///commandsTitle 模板
  7. ///commandsDialog dialogs\template
  8. UE.plugins["template"] = function() {
  9. UE.commands["template"] = {
  10. execCommand: function(cmd, obj) {
  11. obj.html && this.execCommand("inserthtml", obj.html);
  12. }
  13. };
  14. this.addListener("click", function(type, evt) {
  15. var el = evt.target || evt.srcElement,
  16. range = this.selection.getRange();
  17. var tnode = domUtils.findParent(
  18. el,
  19. function(node) {
  20. if (node.className && domUtils.hasClass(node, "ue_t")) {
  21. return node;
  22. }
  23. },
  24. true
  25. );
  26. tnode && range.selectNode(tnode).shrinkBoundary().select();
  27. });
  28. this.addListener("keydown", function(type, evt) {
  29. var range = this.selection.getRange();
  30. if (!range.collapsed) {
  31. if (!evt.ctrlKey && !evt.metaKey && !evt.shiftKey && !evt.altKey) {
  32. var tnode = domUtils.findParent(
  33. range.startContainer,
  34. function(node) {
  35. if (node.className && domUtils.hasClass(node, "ue_t")) {
  36. return node;
  37. }
  38. },
  39. true
  40. );
  41. if (tnode) {
  42. domUtils.removeClasses(tnode, ["ue_t"]);
  43. }
  44. }
  45. }
  46. });
  47. };