网站是否可以检测到任何chrome扩展正在读取DOM。

问题描述 投票:0回答:1

我想从网页中的javascript中了解安装在Chrome浏览器中的任何chrome扩展是否在读取DOM。我希望能够做到这一点,即使该扩展没有在 DOM 中插入任何 HTML 或脚本。有什么方法可以做到这一点吗?基本上,我想防止网站内容被刮取。

我看到这个选项

http:/blog.kotowicz.net201202intro-to-chrome-addons-hacking.html。

但这需要我知道扩展的id。我希望能够在所有安装的扩展中更自然地做到这一点。

是否有一些事件我可以得到基于当一个DOM元素准备好或一些DOM函数被调用?

先谢谢你的帮助。

javascript google-chrome dom google-chrome-extension dom-events
1个回答
-1
投票

读取DOM的方法有很多,所以要抓住所有的方法会很困难。然而,你可以做的一种方法是包装单个DOM查询方法。比如说,你可以用这样的方法来查询DOM。

const origFn = HTMLDocument.prototype.querySelector;
HTMLDocument.prototype.querySelector = function(...args) {
  const error = new Error();
  console.log(`querySelector was called. Args:`, args, ', Stack trace', error.stack);
  return orig.apply(this, args); 
}

这将做一个 console.log 每当 document.querySelector 被调用。我不能100%确定栈跟踪是否会引用Chrome扩展JavaScript,但值得一试。另外,也不能保证所有的原型都能像这样被覆盖。

© www.soinside.com 2019 - 2024. All rights reserved.