繁体   English   中英

一些 javascript 代码让我无法在 chrome 上打开 devTools

[英]some javascript codes make me can't open the devTools on chrome

有一个网站的页面有这个代码,它不允许我打开 chrome 控制台面板:

var element = new Image();
Object.defineProperty(element, 'id', {
  get: function(){ window.location.href = "/about" }
});
console.log(element);

我的 chrome 浏览器安装了 chrome 扩展“快捷键”,它可以在完全加载的页面上运行 javascript 代码,我尝试使用此扩展来运行 javascript 代码来修改 var 元素,因此页面不会重定向到页面/about当我按下F12键时。

使element = null不起作用。 请告诉我我能做些什么来完成它,谢谢。

这是如何工作的?

  1. 您的代码正在定义element.id的 getter。 如果您尝试获取id ,您将被重定向到/about
  2. 代码将元素记录到控制台。
  3. 当您打开控制台时,Chrome 会获取element的所有道具的值(包括计算出的id
  4. 当 Chrome 尝试获取id值时,JS 重定向到另一个页面

我怎样才能避免这种情况?

您可以使用console.clear() 它将从控制台中删除所有消息,并且何时不会调用id getter。

为什么element = null不起作用?

因为在日志上创建了element的副本。 进一步的修改不会影响副本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM