使用Javascript检测元素.样式更改

使用Javascript检测元素.样式更改,javascript,Javascript,我目前正在做一个小小的扩展,以增强一个网站,即google plus邮箱。我想把它移到显示器的最左边 但是,此邮箱每次打开时都会重置其值 基本上,我想消除这种行为,并认为我可以监视元素的element.style更改,然后再次覆盖它们。然而,这似乎不适用于这样的东西 除此之外,我还发现当邮箱关闭时,它就不再存在了 也许这里有人有办法解决这个问题 我当然可以循环一个操作,每隔一秒钟左右设置一次样式。但是不,谢谢 非常感谢您的帮助:)不推荐使用突变事件,webkit浏览器不支持DOMAttrModi

我目前正在做一个小小的扩展,以增强一个网站,即google plus邮箱。我想把它移到显示器的最左边

但是,此邮箱每次打开时都会重置其值

基本上,我想消除这种行为,并认为我可以监视元素的element.style更改,然后再次覆盖它们。然而,这似乎不适用于这样的东西

除此之外,我还发现当邮箱关闭时,它就不再存在了

也许这里有人有办法解决这个问题 我当然可以循环一个操作,每隔一秒钟左右设置一次样式。但是不,谢谢


非常感谢您的帮助:)

不推荐使用突变事件,webkit浏览器不支持DOMAttrModified。改用。或者,您可以尝试。

快速开始使用
这里有一个小的可重用函数

/**
*突变观测器辅助函数
*//developer.mozilla.org/en-US/docs/Web/API/MutationObserver/observe
*@param{string}选择要监视的DOM选择器
*@param{object}opt MutationObserver选项
*@param{function}cb将变异对象传递给回调函数
*/
观察常数=(选择、选择、cb)=>{
const Obs=new MutationObserver((m)=>[…m].forEach(cb));
document.queryselectoral(sel.forEach)(el=>Obs.observer(el,opt));
};
要仅跟踪某些
class=“item”
元素上的属性
“style”
更改,请使用like:

观察(“.item”{
attributesList:[“style”],//仅“style”属性
AttributeLoddValue:true,//同时报告旧值
},(m)=>{
console.log(m);//对象
});
要查看所有属性的更改,请使用以下命令,而不是
attributesList
数组:

attributes: true
如果需要,这里有一个例子:

/**
*突变观测器辅助函数
*//developer.mozilla.org/en-US/docs/Web/API/MutationObserver/observe
*@param{string}选择要监视的DOM选择器
*@param{object}opt MutationObserver选项
*@param{function}cb将变异对象传递给回调函数
*/
观察常数=(选择、选择、cb)=>{
const Obs=new MutationObserver((m)=>[…m].forEach(cb));
document.queryselectoral(sel.forEach)(el=>Obs.observer(el,opt));
};
//演示时间:
观察(“测试”{
属性列表:[“样式”],
属性值:true,
},(m)=>{
console.log(`
旧值:${m.oldValue}
新值:${m.target.getAttribute(m.attributeName)}
`);
});
const EL#u test=document.querySelector(“#test”);
EL_test.addEventListener(“输入”,()=>EL_test.style.cssText=EL_test.value);
EL_test.style.cssText=EL_test.value
*{margin:0;}
text区域{宽度:60%;高度:50px;}

背景:#0bf;
颜色:#000;

woah非常感谢:D这真是太棒了,在我的扩展中发现了其他一些错误后,再次感谢,你帮了我很多忙