【问题标题】:How to listen in on DOM changes that you make with chrome developer tool如何监听您使用 chrome 开发人员工具所做的 DOM 更改
【发布时间】:2015-01-27 00:43:59
【问题描述】:

我需要制作一个可以检测我何时使用 chrome 开发人员工具更新网页属性的应用程序。 例如。如果我打开开发人员工具,请使用元素选择器并更改特定元素的字体大小(见图)。我应该能够运行一个程序,通知页面上更新了哪些元素以及更改了哪些属性。

这怎么可能?

【问题讨论】:

  • 你有解决办法吗??
  • @Tirtha 需要此功能的网站是否在您的控制之下(由您创建)?校验和可以作为一种可能的解决方案吗?例如,受您控制的网站在对 DOM 进行更改时会更新校验和。当您使用开发者控制台更改某些内容时,您只是不更新​​此校验和。或者这样的事情是否被认为是这个问题的无效解决方法?
  • @Kumar 您的链接没有回答这个问题。问题是我们如何检测从开发控制台启动的更新。问题不在于我们一般如何检测 DOM 更新。

标签: google-chrome google-chrome-devtools


【解决方案1】:

这听起来像是一个突变观察者的工作。看看https://developer.mozilla.org/en/docs/Web/API/MutationObserver

例如http://jsfiddle.net/3y3rpfq5/1/

示例代码:

var target = document.querySelector('#some-id');

// create an observer instance
var observer = new MutationObserver(function(mutations) {
  mutations.forEach(function(mutation) {
    console.log(mutation.type);
  });    
});

// configuration of the observer:
var config = { attributes: true, childList: true, characterData: true };

// pass in the target node, as well as the observer options
observer.observe(target, config);

【讨论】:

  • 谢谢,但我不确定我如何知道我观察到的更新,例如 MutationObserver(其他选项可用)是由开发人员工具制作的。可能只是网页上运行的 javascript 导致 dom 发生变化?
  • @user681814 不知道你的意思,但小提琴处理按钮点击所做的 dom 更改,即 javascript。
  • 我会尝试澄清一下:我需要知道 DOM 中的更改是否是由使用开发人员工具的人引起的。如果更改是由其他原因引起的,则不应对该事件采取行动。如果我使用您的小提琴通过单击按钮来更改字体大小,则不应对该事件采取行动(现在是这样)。只有当我使用 chrome 开发工具更改字体大小时,它才会显示“您使用 chrome 开发工具更改了字体大小”。
猜你喜欢
  • 2018-03-29
  • 1970-01-01
  • 1970-01-01
  • 2014-09-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-06
  • 1970-01-01
相关资源
最近更新 更多