14

是否有某种编程方式(或者可能是浏览器插件)允许用户在当前加载到浏览器中的网页上任意运行他们想要的任何 jQuery?

编辑:

我的动机是能够提前在页面上测试 jQuery 语法和命令,然后将它们添加到其源代码中,或者向我尝试过的页面的 web 管理员建议调整。

我一直在使用主站点的 jQuery 来运行测试。目前在 3.5.1:jQuery 下载页面

4

8 回答 8

27

您可以使用 Chrome 的控制台来执行此操作。如果您使用的是 Chrome,请右键单击该页面,然后单击“检查元素”。转到“控制台”选项卡并尝试运行$ === jQuery. 如果你没有得到错误并且结果是true,那么你就有了 jQuery。

如果没有,请运行以下命令将 jQuery 添加到页面:

var body = document.getElementsByTagName("body")[0];
var script = document.createElement('script');
script.type = "text/javascript";
script.src = "http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js";
body.appendChild(script);

运行这些命令后,jQuery 应该被加载到任何网页并准备好在控制台中使用:)

上面的代码应该适用于任何带有 JavaScript 控制台的浏览器。

或者,还有一些用户脚本(如 Greasemonkey 和 FireQuery),如果页面中不包含 jQuery,它们会自动运行上述代码以注入 jQuery,以便您轻松编写脚本和破解其他人的页面。

于 2011-12-14T17:07:18.823 回答
13

这使用了 Google CDN,它是 HTTPs 友好的、单行的和封装的:

(function(){var jQueryVersion="1";var a=document.createElement("script");a.src="//ajax.googleapis.com/ajax/libs/jquery/"+jQueryVersion+"/jquery.js";a.type="text/javascript";document.getElementsByTagName("head")[0].appendChild(a);})()

您可以指定 jQuery 的版本,例如jQueryVersion="2.0.2".

developer.google.com/speed/libraries/devguide列出了所有版本。

于 2012-08-28T13:57:30.427 回答
4

FireQuery是一个很棒的 Firebug 扩展,它可以为您包含 jQuery,并且您可以从那里在控制台中使用 jQuery。

“jQuerify:使您能够将 jQuery 注入任何网页”

于 2011-12-14T17:04:44.747 回答
2

我编写了一个小书签,用于检查文档中是否存在 jQuery,<head>如果它不存在则将其添加到其中,如果 jQuery 是通过脚本加载或已存在于文档中,则会显示通知(使用 jQuery)。只需将此代码添加到您的书签即可获得该功能:

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();});
        }
    }
})();
于 2011-12-14T19:27:43.780 回答
2

为了方便在 Chrome 中注入(并指示它的存在)jQuery,甚至进入与 Prototype 无冲突模式的HTTPS页面指示Prototype是否也存在于页面上)您可能更喜欢jQuerify扩展(jQuerify for Chrome)质量在几年的经验中被成千上万的用户证明了。一句话:“节省您的时间”。

于 2013-05-08T16:38:15.970 回答
0

对于 firefox 中的开发,您可以将FirebugFireQuery一起使用。

于 2011-12-14T17:06:41.530 回答
0

看一下这个:

jQuery 书签生成器 http://benalman.com/projects/run-jquery-code-bookmarklet/

于 2011-12-14T17:08:30.883 回答
-1

eval执行您传递给它的任何字符串,但如果它的用法是“正确的”,则有争议

eval('$(function() { alert("hello"); }');

将在文档准备就绪时显示警报(前提是在eval调用之前获取 jQuery)。

于 2011-12-14T17:04:18.223 回答