XPathを取得するブックマークレット

javascript:function x(e){if(e.nodeType==9){return""}if(e.hasAttribute("id")){return'id("'+e.getAttribute("id")+'")'}var p=e.parentNode;var t=x(p)+"/"+e.tagName.toLowerCase();var c=p.childNodes;var g=0;var s;for(var i=0,n=c.length;i<n;++i){if(c[i].nodeName==e.nodeName && c[i].nodeType==e.nodeType){++g;if(c[i]==e){s=g}}}if(g==1){return t}t+="["+(s)+"]";return t}var f;function m(a){return function(e){e.preventDefault();if(f&&f.s){f.style.background=f.o}a(e.target)}}var c=m(function(e){prompt("XPath Result",x(e));r()});var o=m(function(e){f=e;f.s=true;f.o=e.style.background;f.style.background="rgba(255,0,0,0.5)"});var s;function a(){s=document.querySelectorAll('*');for(var i=0,n=s.length;i<n;++i){s[i].addEventListener("click",c,true);s[i].addEventListener("mouseover",o,true)}}function r(){for(var i=0,n=s.length;i<n;++i){s[i].removeEventListener("click",c,true);s[i].removeEventListener("mouseover",o,true)}s=null}a()

Firefox, Google Chromeで確認。クリックした要素のXPathを取得する。

test