elementpath.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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. };