对于不使用jQuery的网站,有没有一种简单的方法将jQuery包含在Chrome JavaScript控制台中?例如,在一个网站上,我想获取表中的行数。我知道jQuery很容易做到这一点。
$('element').length;
该网站不使用jQuery。我可以从命令行添加它吗?
对于不使用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填充并附加到头部。
其他回答
根据这个答案:
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)})
现代浏览器(在Chrome、Firefox、Safari上测试)使用美元符号$实现了一些助手函数,这些函数与jQuery非常相似(如果网站没有使用window.$定义某些东西)。
这些实用程序对于选择DOM中的元素并修改它们非常有用。
文档:Chrome、Firefox
我已经在公认的解决方案基础上进行了改进
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
这将使它成为一个可点击的书签,而不是复制粘贴其他答案中的代码。
由jondavidjohn给出的最佳答案很好,但我想对其进行调整,以解决以下几点:
各种浏览器在将脚本从http加载到https页面时发出警告。如果您直接从浏览器的URL栏尝试,只需将jquery.com的协议更改为https,就会收到警告:这可能不是您要查找的站点!当我使用控制台尝试Gmail等谷歌网站时,我喜欢使用谷歌的CDN。
我唯一的问题是,我必须在控制台中包含一个版本号,我总是想要最新版本。
var jq = document.createElement('script');
jq.src = "//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js";
document.getElementsByTagName('head')[0].appendChild(jq);
jQuery.noConflict();