对于不使用jQuery的网站,是否有简便的方法将jQuery包含在Chrome JavaScript控制台中?例如,在一个网站上,我想获取表中的行数。我知道使用jQuery确实很容易。
$('element').length;
该网站不使用jQuery。我可以从命令行添加它吗?
document.getElementById('tableID').rows.length
。如果表没有ID,请使用DOM编辑器为其提供一个ID。您不需要jQuery就可以做到如此琐碎的琐事。
对于不使用jQuery的网站,是否有简便的方法将jQuery包含在Chrome JavaScript控制台中?例如,在一个网站上,我想获取表中的行数。我知道使用jQuery确实很容易。
$('element').length;
该网站不使用jQuery。我可以从命令行添加它吗?
document.getElementById('tableID').rows.length
。如果表没有ID,请使用DOM编辑器为其提供一个ID。您不需要jQuery就可以做到如此琐碎的琐事。
Answers:
在浏览器的JavaScript控制台中运行它,然后jQuery应该可用...
var jq = document.createElement('script');
jq.src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.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 injection')}}; 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 /版本。
chrome:flags
,看看是否存在,您需要将其打开。
在控制台中运行
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
并将其粘贴到控制台中。完美运作。
jQuery
或$
。仅此解决方案有效。然后,由于这些天我没有过多地使用日志控制台-它始终存在于我的命令历史记录中,因此在我第一次复制内容之后-现在,只需要向上箭头键然后输入即可。非常酷-谢谢
javascript:
。
Content Security Policy: The page’s settings blocked the loading of a resource at https://code.jquery.com/jquery-latest.min.js (“script-src”).
除了@jondavidjohn的答案外,我们还可以将其设置为书签,并以URL作为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.noConflict();
使它看起来在随机网站,我在测试这个不工作。原来他们已经有了jQuery,但是$
由于某种原因,他们的jQuery没有捷径。屏幕截图:prntscr.com/bdcpdh。
我是反叛者
解决方案:不要使用jQuery。jQuery是一个库,用于在浏览器中抽象出DOM不一致性。由于您位于自己的控制台中,因此不需要这种抽象。
例如:
$$('element').length
($$
是的别名document.querySelectorAll
控制台中。)
对于其他任何示例:我确定我能找到任何东西。特别是如果您使用的是现代浏览器(Chrome,FF,Safari,Opera)。
此外,知道DOM的工作原理不会伤害任何人,只会增加jQuery的水平(是的,了解更多有关javascript的知识可以使您在jQuery上更好。)
sizzle
远比任何本机javascript调用都强大。$('div.className').children().hasClass('active').filter( function(index) { ... });
在纯js中,查询类似内容将是一场噩梦。
document.querySelectorAll('div.className .active').filter(function(index) {})
吗 :p
[].slice.call( document.querySelectorAll('div.className .active') ).filter...
但要点是:如果您拥有现代浏览器,即使没有jQuery,dom也不会感到痛苦。:)
:1
不是伪选择器。也许你想要:first-child
?
我刚刚制作了带有错误处理的jQuery 3.2.1小书签(仅在未加载时加载,在已加载时检测版本,在加载时出现错误,则显示错误消息)。已在Chrome 27中进行了测试。由于jQuery 2.0与1.9的API兼容,因此没有理由在Chrome浏览器上使用“旧的” jQuery 1.9.1。。
只需在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
如果直接从浏览器的网址栏中尝试将则会产生警告:This is probably not the site you are looking for!
我唯一的问题是,我必须在控制台中始终包含我确实想要最新版本的版本号。
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)})
fetch('http://code.jquery.com/jquery-latest.min.js').then(response => response.text()).then(text => { eval(text); console.log($) })
。希望这对您有所帮助。
fetch('http://code.jquery.com/jquery-latest.min.js').then(response => response.text()).then(text => { eval(text); eval(text) })
。这是必须执行两次的绝对改进。
手动完成此操作非常容易,如其他答案所述。但是,还有jQuerify插件。
FWIW,Firebug嵌入include
特殊命令,默认情况下,jQuery为别名:https:
//getfirebug.com/wiki/index.php/Include
因此,在您的情况下,只需键入:
include("jquery");
弗洛朗
include("http://code.jquery.com/jquery-latest.min.js", "jquery")
第一次使用。如果您只是include("jquery");
得到错误Alias 'jquery' not found.
。include("jquery");
用于在不同选项卡/域上重用同一库。
include("jquery")
在控制台上运行时会得到该错误。
includeAliases.json
文件中的文件(包含include()
别名)即可。
这个答案基于@genesis答案,起初我尝试了书签版本@jondavidjohn,但它不起作用,因此我将其更改为此(将其添加到您的书签):
javascript:(function(){var s = document.createElement('script');s.src = "//code.jquery.com/jquery-2.2.4.min.js";document.getElementsByTagName('head')[0].appendChild(s);console.log('jquery loaded')}());
请注意,未经chrome测试,但可在Firefox中使用,且未在冲突环境中进行测试。
这是替代代码:
javascript:(function() {var url = '//ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js'; var n=document.createElement('script');n.setAttribute('language','JavaScript');n.setAttribute('src',url+'?rand='+new Date().getTime());document.body.appendChild(n);})();
可以直接将其粘贴在控制台中,也可以创建一个新的书签页面(在Chrome中,右键单击“ 书签栏”,然后单击“ 添加页面...”),然后将此代码粘贴为URL。
要测试是否可行,请参见下文。
之前:
$()
Uncaught TypeError: $ is not a function(…)
后:
$()
[]
如果要从控制台频繁使用jQuery,则可以轻松编写用户脚本。首先,如果您使用的是Chrome,则安装Tampermonkey;如果您使用的是Firefox,则安装Greasemonkey。使用如下使用功能编写一个简单的用户脚本:
var scripts = [];
function use(libname) {
var src;
if (scripts.indexOf(libname) == -1) {
switch (libname.toLowerCase()) {
case "jquery":
src = "//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js";
break;
case "angularjs":
src = "//ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js";
break;
}
} else {
console.log("Library already in use.");
return;
}
if (src) {
scripts.append(libname);
var script = document.createElement("script");
script.src = src;
document.body.appendChild(scr);
} else {
console.log("Invalid Library.");
return;
}
}
将您的代码放入yourCode_here
函数中。并防止没有HEAD标签的HTML。
(function(head) {
var jq = document.createElement('script');
jq.src = "https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js";
((head && head[0]) || document.firstChild).appendChild(jq);
})(document.getElementsByTagName('head'));
function jQueryReady() {
if (window.jQuery) {
jQuery.noConflict();
yourCode_here(jQuery);
} else {
setTimeout(jQueryReady, 100);
}
}
jQueryReady();
function yourCode_here($) {
console.log("OK");
$("body").html("<h1>Hello world !</h1>");
}
直观的一线
document.write(unescape('%3Cscript src="https://code.jquery.com/jquery-3.1.1.min.js"%3E%3C/script%3E’))
您可以更改src
地址。
我提到ReferenceError:找不到变量:jQuery