发布时间:
不可以打开 #
方法一 #
将鼠标光标移动到搜索或地址栏中,点击聚焦,此时再按 F12 键就可以顺利打开控制台了。
方法二 #
随便找一个可以打开控制台的页面,然后将不能打开控制的页面地址,复制粘贴已打开的网页中,Enter 键访问。
方法三 #
尝试 Ctrl + S 保存网页,对代码进行分析,然后通过 油猴 注入脚本重新对应方法
方法四 #
| 操作系统 | 元素 | 控制台 | 您上次使用的面板 |
|---|---|---|---|
| Windows 或 Linux | Ctrl + Shift + C | Ctrl + Shift + J | F12 Ctrl + Shift + I |
| Mac | Cmd + Option + C | Cmd + Option + J | Fn + F12 Cmd + Option + I |
下面介绍了一种记忆快捷键的简单方法:
- C 代表 CSS。
- J 表示 JavaScript。
- I 表示您选择的选项。
方法五 #
Ctrl + u 源码视图进行分析网页代码
可以打开 #
有些网页可以打开控制台,但是打开一瞬间跳转 about:blank 空白页,可以通过一下脚本阻止跳转同时弹框提醒是否离开
beforeunload #
监听页面卸载事件 油猴脚本
window.addEventListener("beforeunload", function(event) {
// 尝试离开页面时执行
event.preventDefault();
return
});
devtoolschange #
监听控制台变化 油猴脚本
// 如果已经存在的监听器需要移除
const originalRemoveEventListener = window.removeEventListener;
window.removeEventListener = function(type, listener, options) {
if (type === 'devtoolschange') {
// 拦截对 devtoolschange 事件监听的移除
return;
}
// 对其他事件,使用原始方法进行移除
originalRemoveEventListener.call(window, type, listener, options);
};
通过窗口高度和宽度来判断是否打开控制台 #
此刻就需要先打开控制台,点击控制台设置 停靠测:“取消停靠至单独的窗口”,然后控制台单独一个窗口
油猴脚本 #
有些网站是通过 setTimeout 定时触发检测或重定向,所以可以过滤 callback 的内容然后对应方法失效(自行测试调整)。

// ==UserScript==
// @name enable-devtool
// @namespace http://tampermonkey.net/
// @version 2025-12-18
// @description 解决大部分页面,打开控制台页面直接重定向或 about:blank 问题
// @author Mr.Fang
// @match https://*/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=www.google.com
// @grant unsafeWindow
// @run-at document-start
// ==/UserScript==
(function() {
'use strict'
const originalAddEventListener = window.addEventListener;
// 重写 setTimeout ,拦截定时器执行 about:blank 内容
const originalSetTimeout = unsafeWindow.setTimeout;
unsafeWindow.setTimeout = function(callback, delay, ...args) {
let toStr = callback?.toString();
console.log(toStr)
if (toStr && toStr.includes('about:blank')) return true; // 自定修改 about:blank 要匹配的内容
const wrappedCallback = function() {
callback(...args); // 也可注释掉此行进行验证
};
return originalSetTimeout(wrappedCallback, delay);
};
// 重写 setInterval,拦截定时器执行 about:blank 内容
const originalSetInterval = unsafeWindow.setInterval;
unsafeWindow.setInterval = function(callback, delay, ...args) {
let toStr = callback?.toString();
console.log(toStr)
if (toStr && toStr.includes('about:blank')) return true; // 自定修改 about:blank 要匹配的内容
const wrappedCallback = function() {
callback(...args); // 也可注释掉此行进行验证
};
return originalSetInterval(wrappedCallback, delay);
};
// 重写 addEventListener 方法
window.addEventListener = function(type, listener, options) {
if (type === 'devtoolschange') {
// 拦截对 devtoolschange 事件的监听,阻止其添加
console.log("拦截了添加“devtoolschange”侦听器的尝试.");
return;
}
// 对其他事件,使用原始方法进行添加
originalAddEventListener.call(window, type, listener, options);
};
// 如果已经存在的监听器需要移除
const originalRemoveEventListener = window.removeEventListener;
window.removeEventListener = function(type, listener, options) {
if (type === 'devtoolschange') {
// 拦截对 devtoolschange 事件监听的移除
console.log("拦截了删除“devtoolschange”侦听器的尝试.");
return;
}
// 对其他事件,使用原始方法进行移除
originalRemoveEventListener.call(window, type, listener, options);
};
// 监听开发者窗口改变
window.addEventListener("devtoolschange", event => {
console.log('阻止')
event.preventDefault();
return
});
// 监听离开当前页面,例如使用 window.location.href
window.addEventListener("beforeunload", function(event) {
// 在用户尝试离开页面时执行你的逻辑
// 例如:
event.preventDefault();
console.log('阻止');
return
// event.returnValue = ""; // 兼容老版本浏览器
// return ""; // 兼容新版本浏览器
// 或者显示一个警告框
// return "您确定要离开吗?";
});
})();