/** * 选取路径命令 * @file */ UE.plugins["elementpath"] = function() { var currentLevel, tagNames, me = this; me.setOpt("elementPathEnabled", true); if (!me.options.elementPathEnabled) { return; } me.commands["elementpath"] = { execCommand: function(cmdName, level) { var start = tagNames[level], range = me.selection.getRange(); currentLevel = level * 1; range.selectNode(start).select(); }, queryCommandValue: function() { //产生一个副本,不能修改原来的startElementPath; var parents = [].concat(this.selection.getStartElementPath()).reverse(), names = []; tagNames = parents; for (var i = 0, ci; (ci = parents[i]); i++) { if (ci.nodeType == 3) { continue; } var name = ci.tagName.toLowerCase(); if (name == "img" && ci.getAttribute("anchorname")) { name = "anchor"; } names[i] = name; if (currentLevel == i) { currentLevel = -1; break; } } return names; } }; };