How to run jQuery directly on any page in the browser?

后端 未结 8 672
你的背包
你的背包 2021-01-31 21:17

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?

8条回答
  •  隐瞒了意图╮
    2021-01-31 22:05

    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();});
            }
        }
    })();
    

提交回复
热议问题