Skip to content

Instantly share code, notes, and snippets.

@cers
Created March 19, 2009 18:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cers/81976 to your computer and use it in GitHub Desktop.
Save cers/81976 to your computer and use it in GitHub Desktop.
CmdUtils.CreateCommand({
name: "selector",
description: "Finds a selector that will match element currently hovered, and highlights all matches",
execute: function() {
var d = CmdUtils.getDocumentInsecure();
myId = function(me){ return me.id ? '#' + me.id : '' }
myTag = function(me){ return me.tagName ? me.tagName.toLowerCase() : '' }
myClass = function(me){ return me.className ? '.' + me.className.split(' ').join('.') : '' }
breadcrumbs = function breadcrumbs(me){
var path = [myTag(me) + myId(me) + myClass(me)];
jQuery(me,d).parents().each(function() {
path[path.length] = myTag(this) + myId(this) + myClass(this);
});
path.reverse();
return path.join(' > ').replace(/.ubiquityHighlight/g,"");
}
if (!d.getElementById("ubiquityCss"))
jQuery('head',d).append('<style id="ubiquityCss" type="text/css">.ubiquityHighlight {outline: 1px blue solid !important;}</style>');
jQuery("body *",d).each(function ubiquityHighlight(){
jQuery(this).mouseover(function ubiquityHighlightMouseOver(e){
jQuery("body *",d).removeClass("ubiquityHighlight");
var path = breadcrumbs(this);
jQuery(path,d).addClass("ubiquityHighlight");
e.stopPropagation();
});
jQuery(this).mouseout(function ubiquityHighlightMouseOut(e){
jQuery("body *",d).removeClass("ubiquityHighlight");
});
jQuery(this).click(function ubiquityHighlightClick(e){
var path = breadcrumbs(this);
CmdUtils.copyToClipboard(path);
displayMessage(path);
e.stopPropagation();
e.preventDefault();
return false;
});
});
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment