Is there some programmatic way (or maybe a browser plugin) that allows users to arbitrarily run any jQuery they want on a webpage that is currently loaded in their browser?
I wrote a bookmarklet that checks the document for jQuery, adds it to the if it doesn't already exist, and displays a notification (using jQuery) if jQuery was either loaded via the script or already present in the document. Just add this code to your bookmarks to get the functionality:
javascript: (function()
{
var body = document.getElementsByTagName("body")[0];
var head = document.getElementsByTagName("head")[0];
var el = document.createElement('div');
el.id = 'jqbkstatusnote';
el.style.position = 'fixed';
el.style.top = '10px';
el.style.left = '10px';
el.style.textAlign = 'center';
el.style.color = '#fff';
el.style.padding = '3px';
el.style.fontWeight = 'bold';
el.style.display = 'none';
el.style.zIndex = '999999999';
el.style.boxShadow = '0px 0px 0px 1px #fff, 3px 3px 1px rgba(0,0,0,0.5)';
if (typeof jQuery != 'function')
{
var script = document.createElement('script');
script.type = "text/javascript";
script.src = "http://code.jquery.com/jquery-latest.min.js";
head.appendChild(script);
waitForJQ();
}
else
{
el.style.border = '1px solid #522';
el.style.backgroundColor = '#744';
el.innerHTML = 'jQuery already exists in this document!';
body.appendChild(el);
jQuery('#jqbkstatusnote').fadeIn().delay(1000).fadeOut(function(){jQuery(this).remove();});
}
function waitForJQ()
{
if (typeof jQuery != 'function')
{
window.setTimeout(waitForJQ, 100);
}
else
{
el.style.border = '1px solid #235';
el.style.backgroundColor = '#457';
el.innerHTML = 'jQuery added to document!';
body.appendChild(el);
jQuery('#jqbkstatusnote').fadeIn().delay(1000).fadeOut(function(){jQuery(this).remove();});
}
}
})();