有时候在浏览网页或调试页面时,想快速用 jQuery 查询元素、修改 DOM、批量处理页面内容,但当前页面本身并没有引入 jQuery。

如果只是临时调试,不想改页面源码,也不想写完整的原生 JavaScript,就可以在 Chrome DevTools 控制台中动态插入 jQuery。这样当前页面就可以临时使用 jQuery$

需要注意,这种方法只适合开发调试、临时分析页面结构、处理自己能确认安全的网页。不要在不可信网站上随便粘贴别人给的控制台代码,因为控制台代码可以读取页面信息、操作页面内容,甚至执行危险行为。

一、打开 Chrome 控制台 #

在 Chrome 浏览器中打开需要调试的页面,然后按:

TEXT
F12

或者:

TEXT
Ctrl + Shift + I

也可以在页面空白处右键,选择:

TEXT
检查

然后切换到:

TEXT
Console

也就是“控制台”标签页。

如果 Chrome 提示不能直接粘贴代码,需要在控制台中按提示输入:

TEXT
allow pasting

然后再粘贴代码。这个提示是 Chrome 为了防止用户随便复制陌生代码导致账号或页面数据被攻击。

二、在控制台中插入 jQuery #

可以在控制台中执行下面这段代码:

JavaScript
var importJs = document.createElement('script');
importJs.setAttribute('type', 'text/javascript');
importJs.setAttribute('src', 'https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js');
document.getElementsByTagName('head')[0].appendChild(importJs);

执行后稍等一两秒,jQuery 文件加载完成后,就可以在当前页面中使用:

JavaScript
jQuery

或者:

JavaScript
$

例如:

JavaScript
$('a').length

这行代码可以统计当前页面中有多少个链接。

再比如:

JavaScript
$('img').length

可以查看当前页面中有多少张图片。

三、推荐使用带加载提示的写法 #

上面的写法比较简单,但它没有提示 jQuery 是否加载完成。如果页面网络慢,或者 CDN 访问失败,直接使用 $ 可能会提示未定义。

更稳妥的写法是加入 onload 回调:

JavaScript
(function () {
  var script = document.createElement('script');
  script.src = 'https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js';
  script.onload = function () {
    console.log('jQuery loaded:', jQuery.fn.jquery);
  };
  script.onerror = function () {
    console.error('jQuery failed to load.');
  };
  document.head.appendChild(script);
})();

如果加载成功,控制台会输出类似:

TEXT
jQuery loaded: 3.7.1

这时再使用 $()jQuery() 就比较稳妥。

四、如果页面已经有 jQuery #

有些网页本身已经引入了 jQuery,这时不需要重复加载。可以先在控制台中输入:

JavaScript
typeof jQuery

如果返回:

TEXT
"function"

说明页面已经有 jQuery。

也可以查看版本:

JavaScript
jQuery.fn.jquery

如果页面已经存在 jQuery,直接使用即可。

如果返回:

TEXT
"undefined"

说明当前页面没有 jQuery,或者 jQuery 没有暴露到全局变量中。

五、避免覆盖页面原有的 $ #

有些页面虽然没有 jQuery,但可能已经使用了其他库占用了 $ 变量。为了避免影响页面本身逻辑,可以使用 jQuery.noConflict()

例如:

JavaScript
(function () {
  var script = document.createElement('script');
  script.src = 'https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js';
  script.onload = function () {
    window.jq = jQuery.noConflict(true);
    console.log('jQuery loaded as jq:', jq.fn.jquery);
  };
  document.head.appendChild(script);
})();

这样加载后,不直接使用 $,而是使用:

JavaScript
jq('a').length

这种方式更适合调试复杂页面,避免和原页面已有脚本冲突。

六、常见使用示例 #

统计页面中所有链接数量:

JavaScript
$('a').length

输出所有链接地址:

JavaScript
$('a').each(function () {
  console.log($(this).attr('href'));
});

查找所有图片地址:

JavaScript
$('img').each(function () {
  console.log($(this).attr('src'));
});

隐藏页面中某些元素:

JavaScript
$('.ad, .popup, .banner').hide();

修改某个元素的文字:

JavaScript
$('h1').text('测试标题');

给所有链接加边框,方便观察页面结构:

JavaScript
$('a').css('outline', '1px solid red');

这些操作都只是在当前页面临时生效。刷新页面后,修改就会消失。

七、为什么有时候加载失败 #

有些页面执行这段代码后,jQuery 可能无法成功加载,常见原因包括:

第一,页面设置了内容安全策略。 如果页面的 CSP 限制了外部脚本来源,浏览器可能会拒绝加载 jsDelivr 或其他 CDN 上的脚本。

第二,当前网络无法访问 CDN。 如果所在网络访问 jsDelivr 不稳定,可以换成其他 jQuery CDN 地址。

第三,页面本身是特殊页面。 例如 Chrome 的内部页面、扩展页面、浏览器设置页面,可能不允许这样注入脚本。

第四,页面已经占用了 $。 这时可以使用 jQuery,或者用 noConflict() 改成 jq

第五,加载还没完成就直接使用。 脚本插入页面后需要一点加载时间,建议使用带 onload 的版本。

八、换用 jQuery 官方 CDN #

除了 jsDelivr,也可以使用 jQuery 官方 CDN。

例如:

JavaScript
(function () {
  var script = document.createElement('script');
  script.src = 'https://code.jquery.com/jquery-3.7.1.min.js';
  script.onload = function () {
    console.log('jQuery loaded:', jQuery.fn.jquery);
  };
  document.head.appendChild(script);
})();

如果一个 CDN 加载失败,可以临时换另一个 CDN 尝试。

九、正式开发中不建议这样做 #

在控制台中插入 jQuery,适合临时调试,不适合正式项目。

正式项目中应该通过正常方式管理依赖,例如:

HTML
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>

或者通过 npm 安装:

Bash
npm install jquery

然后在项目中按模块方式引入。

控制台注入脚本的特点是方便,但它不稳定、不持久,也不适合多人协作和生产环境。

十、安全提醒 #

不要在网页控制台中执行来源不明的代码。

很多网络骗局会诱导用户打开控制台,然后复制一段所谓“解锁功能”“领取奖励”“恢复账号”“查看隐藏内容”的代码。这类代码可能会读取页面信息、操作账号、发送请求,甚至造成数据泄露。

所以,控制台代码只应该执行自己理解含义的内容。如果不确定一段代码做了什么,就不要粘贴执行。

总结 #

在 Chrome 控制台中临时添加 jQuery,可以使用下面这段代码:

JavaScript
(function () {
  var script = document.createElement('script');
  script.src = 'https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js';
  script.onload = function () {
    console.log('jQuery loaded:', jQuery.fn.jquery);
  };
  script.onerror = function () {
    console.error('jQuery failed to load.');
  };
  document.head.appendChild(script);
})();

加载成功后,就可以在当前页面中使用:

JavaScript
$('a').length

或者:

JavaScript
jQuery('img').length

这个方法适合临时调试、分析页面结构、快速批量操作 DOM。刷新页面后,注入的 jQuery 和临时修改都会消失。

如果是正式项目,还是应该通过正常的依赖管理或页面脚本引入 jQuery,而不是依赖控制台临时注入。