有什么方法可以检测控制台(Devtools)的变化吗?
Is there any way to detect changes in Console (Devtools)?
我正在寻找我的问题的答案。我找不到任何。
例如:
this.connect = false;
if (this.connect) {
alert('CONNECTED');
}
如果我在我的开发工具 -> 控制台中更改 this.connect = true
。它应该警告消息 'CONNECTED'.
有什么办法吗?让它工作真是太棒了!
编辑:不需要代理。只需使用 defineProperty 为 window 的连接 属性 定义一个 get/set 方法。
嘿,看看这个片段 - 我猜这是一个很好的开始方式。
// We are using a property _connected to store the value of the connected property
let _connected = false;
// We are defining a property with the name 'connected' on the this (this = globalThis = window => console dev tool)
Object.defineProperty(this, 'connected', {
get: () => _connected,
set: (value) => {
_connected = value;
console.log(`Setting 'connected' to: ${value}`);
}
});
// Try using this.connected = $val inside your console.
this.connected = true;
this.connected = false;
this.connected = "foo";
使用像 @Jaromanda X 建议的代理也是可能的,但我想这不是最好的解决方案,因为覆盖 window/this/globalThis - 范围似乎是不可能的:
const _this = new Proxy(window, {
set: (target, key, value) => {
if (key === "connected")
console.log(`Setting 'connected' to set to ${value}`);
target[key] = value;
return true;
}
});
_this.connected = true;
_this.connected = false;
_this.connected = "foo";
我正在寻找我的问题的答案。我找不到任何。 例如:
this.connect = false;
if (this.connect) {
alert('CONNECTED');
}
如果我在我的开发工具 -> 控制台中更改 this.connect = true
。它应该警告消息 'CONNECTED'.
有什么办法吗?让它工作真是太棒了!
编辑:不需要代理。只需使用 defineProperty 为 window 的连接 属性 定义一个 get/set 方法。
嘿,看看这个片段 - 我猜这是一个很好的开始方式。
// We are using a property _connected to store the value of the connected property
let _connected = false;
// We are defining a property with the name 'connected' on the this (this = globalThis = window => console dev tool)
Object.defineProperty(this, 'connected', {
get: () => _connected,
set: (value) => {
_connected = value;
console.log(`Setting 'connected' to: ${value}`);
}
});
// Try using this.connected = $val inside your console.
this.connected = true;
this.connected = false;
this.connected = "foo";
使用像 @Jaromanda X 建议的代理也是可能的,但我想这不是最好的解决方案,因为覆盖 window/this/globalThis - 范围似乎是不可能的:
const _this = new Proxy(window, {
set: (target, key, value) => {
if (key === "connected")
console.log(`Setting 'connected' to set to ${value}`);
target[key] = value;
return true;
}
});
_this.connected = true;
_this.connected = false;
_this.connected = "foo";