有没有一种简单的方法可以在Chrome JavaScript控制台中添加jQuery,以供那些不使用它的网站使用?例如,在某个网站上,我想获取表格中的行数。我知道这在jQuery中非常容易。
$('element').length;
这个网站没有使用jQuery。我能否通过命令行添加它?
有没有一种简单的方法可以在Chrome JavaScript控制台中添加jQuery,以供那些不使用它的网站使用?例如,在某个网站上,我想获取表格中的行数。我知道这在jQuery中非常容易。
$('element').length;
这个网站没有使用jQuery。我能否通过命令行添加它?
在您的浏览器JavaScript控制台中运行此代码,然后jQuery将可用...
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);
// ... give time for script to load, then type (or see below for non wait option)
jQuery.noConflict();
注意:如果网站存在与jQuery冲突的脚本(其他库等),你仍然可能会遇到问题。
更好地改进,创建一个书签将使其非常方便,让我们来做吧,一些反馈也很棒:
javascript:(function(e,s){e.src=s;e.onload=function(){jQuery.noConflict();console.log('jQuery injected')};document.head.appendChild(e);})(document.createElement('script'),'//code.jquery.com/jquery-latest.min.js')
以下是格式化后的代码:
javascript: (function(e, s) {
e.src = s;
e.onload = function() {
jQuery.noConflict();
console.log('jQuery injected');
};
document.head.appendChild(e);
})(document.createElement('script'), '//code.jquery.com/jquery-latest.min.js')
这里使用的是官方的 jQuery CDN URL,你可以自由地使用你自己的CDN版本。
javascript: (function(e, s) {
var element = document.createElement('script');
var jqueryUrl = '//code.jquery.com/jquery-latest.min.js';
element.src = jqueryUrl;
element.onload = function() {
jQuery.noConflict();
console.log('jQuery injected');
};
document.head.appendChild(e);
})
- nicusorvar script = document.createElement('script'); script.src = "https://code.jquery.com/jquery-3.7.1.min.js"; document.getElementsByTagName('head')[0].appendChild(script);
复制以下内容:
https://code.jquery.com/jquery-3.4.1.min.js
然后将其粘贴到控制台中。完美运行。
使用jQueryify手册:
https://web.archive.org/web/20190502132317/http://marklets.com/jQuerify.aspx
与复制其他答案中的代码不同,这将使其成为可点击的书签。
2020年后的编程方法,使用:
(async () => {
await import('https://code.jquery.com/jquery-2.2.4.min.js')
// Library ready
console.log(jQuery)
})()
如果不使用 async
,并且由于 import
返回一个 Promise,我们必须使用 .then()
:
import('https://code.jquery.com/jquery-2.2.4.min.js')
.then( () => {
console.log(jQuery)
}
)
在@jondavidjohn的回答基础上,我们还可以将其设置为一个带有javascript代码的书签。
名称:包含Jquery
网址:
javascript:var jq = document.createElement('script');jq.src = "//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js";document.getElementsByTagName('head')[0].appendChild(jq); setTimeout(function() {jQuery.noConflict(); console.log('jQuery loaded'); }, 1000);void(0);
然后将其添加到Chrome或Firefox的工具栏中,这样我们就可以通过单击书签来避免反复粘贴脚本。
我是一个叛逆者。
解决方案:不要使用jQuery。jQuery是一个库,用于在各个浏览器之间抽象DOM的不一致性。由于你在自己的控制台中,不需要这种抽象。
针对你的示例:
$$('element').length
($$
是控制台中document.querySelectorAll
的别名。)
对于任何其他示例:我相信我可以找到任何东西。特别是如果您使用现代浏览器(Chrome、FF、Safari、Opera)。
此外,了解DOM的工作原理对任何人都没有坏处,它只会提高您在jQuery方面的水平(是的,了解更多关于javascript的知识可以让您更好地掌握jQuery)。
我刚刚做了一个带有错误处理的jQuery 3.2.1书签(仅在未加载时加载,如果已经加载则检测版本,如果加载过程中出错则显示错误消息)。在Chrome 27中进行了测试。在Chrome浏览器上没有理由使用“旧”的jQuery 1.9.1,因为jQuery 2.0与1.9是API兼容的。
只需在Chrome的开发者控制台中运行以下命令或将其拖放到您的书签栏中:
javascript:((function(){if(typeof(jQuery)=="undefined"){window.jQuery="loading";var a=document.createElement("script");a.type="text/javascript";a.src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js";a.onload=function(){console.log("jQuery "+jQuery.fn.jquery+" loaded successfully.")};a.onerror=function(){delete jQuery;alert("Error while loading jQuery!")};document.getElementsByTagName("head")[0].appendChild(a)}else{if(typeof(jQuery)=="function"){alert("jQuery ("+jQuery.fn.jquery+") is already loaded!")}else{alert("jQuery is already loading...")}}})())
顶级回答者jondavidjohn的答案不错,但我想修改一些点:
http
的脚本到https
页面时,各种浏览器会发出警告。jquery.com
的协议更改为https
会导致警告,如果您直接从浏览器的URL栏中尝试,则会显示:这可能不是您要查找的站点!
我唯一的问题是我必须在控制台中包含版本号,而我总是希望有最新版本。
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();
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)})
document.getElementById('tableID').rows.length
,意思是获取ID为"tableID"的表格行数。 - Niet the Dark Absol$
来查询选择元素。 - Siddharth Shyniben