对于不使用jQuery的网站,有没有一种简单的方法将jQuery包含在Chrome JavaScript控制台中?例如,在一个网站上,我想获取表中的行数。我知道jQuery很容易做到这一点。
$('element').length;
该网站不使用jQuery。我可以从命令行添加它吗?
对于不使用jQuery的网站,有没有一种简单的方法将jQuery包含在Chrome JavaScript控制台中?例如,在一个网站上,我想获取表中的行数。我知道jQuery很容易做到这一点。
$('element').length;
该网站不使用jQuery。我可以从命令行添加它吗?
当前回答
我刚刚制作了一个带有错误处理的jQuery3.2.1书签(如果尚未加载,则仅加载,如果已加载,则检测版本,如果加载时出错,则显示错误消息)。在Chrome 27中测试。没有理由在Chrome浏览器上使用“旧”jQuery 1.9.1,因为jQuery 2.0与1.9兼容。
只需在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...")}}})())
此处提供可读源代码
其他回答
这个答案基于@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中有效,也没有在冲突环境中测试。
如果您希望为用户脚本执行此操作,我会这样写:http://userscripts.org/scripts/show/123588
它将允许您包含jQuery,以及UI和任何您想要的插件。我在一个有1.5.1但没有UI的网站上使用它;这个脚本给了我1.7.1,加上UI,在Chrome或FF中没有冲突。我自己没有测试过Opera,但其他人告诉我它也适用于他们,所以这应该是一个完整的跨浏览器用户脚本解决方案,如果你需要这样做的话。
由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();
在控制台中运行
var script = document.createElement('script');script.src = "https://code.jquery.com/jquery-3.4.1.min.js";document.getElementsByTagName('head')[0].appendChild(script);
它创建一个新的脚本标记,用jQuery填充并附加到头部。
我是个叛逆者。
解决方案:不要使用jQuery。jQuery是一个抽象浏览器间DOM不一致性的库。因为您在自己的控制台中,所以不需要这种抽象。
例如:
$$('element').length
($$是控制台中document.querySelectorAll的别名。)
对于任何其他例子:我确信我能找到任何东西。特别是如果你使用的是现代浏览器(Chrome、FF、Safari、Opera)。
此外,了解DOM的工作原理不会伤害任何人,它只会提高您的jQuery水平(是的,了解更多有关javascript的知识会让您更擅长jQuery)。