elementpath.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /**
  2. * 选取路径命令
  3. * @file
  4. */
  5. UE.plugins["elementpath"] = function() {
  6. var currentLevel,
  7. tagNames,
  8. me = this;
  9. me.setOpt("elementPathEnabled", true);
  10. if (!me.options.elementPathEnabled) {
  11. return;
  12. }
  13. me.commands["elementpath"] = {
  14. execCommand: function(cmdName, level) {
  15. var start = tagNames[level],
  16. range = me.selection.getRange();
  17. currentLevel = level * 1;
  18. range.selectNode(start).select();
  19. },
  20. queryCommandValue: function() {
  21. //产生一个副本,不能修改原来的startElementPath;
  22. var parents = [].concat(this.selection.getStartElementPath()).reverse(),
  23. names = [];
  24. tagNames = parents;
  25. for (var i = 0, ci; (ci = parents[i]); i++) {
  26. if (ci.nodeType == 3) {
  27. continue;
  28. }
  29. var name = ci.tagName.toLowerCase();
  30. if (name == "img" && ci.getAttribute("anchorname")) {
  31. name = "anchor";
  32. }
  33. names[i] = name;
  34. if (currentLevel == i) {
  35. currentLevel = -1;
  36. break;
  37. }
  38. }
  39. return names;
  40. }
  41. };
  42. };