gpt4 book ai didi

javascript - 网站禁用后如何重新启用 Chrome 开发者控制台?

转载 作者:行者123 更新时间:2023-11-29 21:53:47 24 4
gpt4 key购买 nike

某些网站在其放置小部件的每个页面上禁用 Chrome 控制台(console.log 不工作)。

是否可以重新启用它?(比如 hack 之类的)

附言据我了解,他们只是在重写控制台功能。所以我的问题基本上是这样的:将它重写回正常是否有任何解决方案?(如果我对阻塞控制台的理解是正确的)

最佳答案

这是您可以使用的技巧。我看不到任何方法可以将其重置为 Chrome 使用的原始 Console 类,例如window.console = new Console(),因为它似乎无法访问。

相反,您需要获取一个不同的 console 对象并将当前的 window.console 指向那个对象。最简单的方法是创建一个隐藏的 iframe 并使用它。请注意,您必须将 iframe 保留在页面上。如果删除它,控制台 将被清理并完全停止工作。

这里有一个 jQuery 1-liner 可以做到这一点 a working fiddle :

window.console =
$('<iframe src="about:blank" style="display:none;"/>')
.appendTo(document.body)[0].contentWindow.console;

如果你想要一个纯 JS 解决方案(fiddle):

var theFrame = document.createElement('iframe');
theFrame.src = "about:blank";
theFrame.style.display = "none";
document.body.appendChild(theFrame);
window.console = theFrame.contentWindow.console;

唯一需要注意的是,如果当前页面本身位于带有 sandbox 的 iframe 中ing,就像堆栈片段一样,那么您可能会遇到安全错误,而您对此无能为力。

这个片段 [currently] 不会运行,例如因为它只有 sandbox="allow-scripts"

// break the console
window.console = {
log: function(x) { alert('haha I hijacked your console'); }
}

console.log('debug message');

var theFrame = document.createElement('iframe');
theFrame.src = "about:blank";
theFrame.style.display = "none";
document.body.appendChild(theFrame);
window.console = theFrame.contentWindow.console;

console.log('debug message');

关于javascript - 网站禁用后如何重新启用 Chrome 开发者控制台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27562663/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com