对于不使用jQuery的网站,有没有一种简单的方法将jQuery包含在Chrome JavaScript控制台中?例如,在一个网站上,我想获取表中的行数。我知道jQuery很容易做到这一点。

$('element').length;

该网站不使用jQuery。我可以从命令行添加它吗?


当前回答

在控制台中运行

var script = document.createElement('script');script.src = "https://code.jquery.com/jquery-3.4.1.min.js";document.getElementsByTagName('head')[0].appendChild(script);

它创建一个新的脚本标记,用jQuery填充并附加到头部。

其他回答

从以下位置复制所有内容:https://code.jquery.com/jquery-3.4.1.min.js

并将其粘贴到控制台中。工作完美。

2020年后方法,使用:

动态导入自动执行IIFE异步的,异步的作用箭头函数

(异步()=>{等待导入('https://code.jquery.com/jquery-2.2.4.min.js')//库准备就绪console.log(jQuery)})()


如果没有异步,因为import确实返回Promise,所以我们必须使用.then():

导入('https://code.jquery.com/jquery-2.2.4.min.js').然后(()=>{console.log(jQuery)})

另一个例子

https://caniuse.com/es6-module-dynamic-import

根据这个答案:

fetch('https://code.jquery.com/jquery-latest.min.js').then(r => r.text()).then(r => eval(r))

出于某种原因,我必须执行两次以获得新的“$”(我也必须使用其他方法),但它有效。

如果你的浏览器不是那么现代,这是相当的:

fetch('http://code.jquery.com/jquery-latest.min.js').then(function(r){return r.text()}).then(function(r){eval(r)})

我已经在公认的解决方案基础上进行了改进

var also_unconflict = typeof $ != "undefined";

var jq = document.createElement('script');
jq.src = "https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js";
document.getElementsByTagName('head')[0].appendChild(jq);

if(also_unconflict){
    setTimeout(function(){
        $=jQuery.noConflict();
        console.log('jquery loaded, use jQuery instead of $')
    }, 500)
}else{
    console.log('jquery loaded, you can use $');
}

我在googlechrome控制台片段中使用这个函数

使用jQueryify小册子:

https://web.archive.org/web/20190502132317/http://marklets.com/jQuerify.aspx

这将使它成为一个可点击的书签,而不是复制粘贴其他答案中的代码。