Jos*_*han 8 javascript jquery google-chrome-extension mutation-observers reactjs
我正在开发一个 Google Chrome 扩展程序,并且有类似下面的代码。虽然下面的代码没有任何问题,但有一个小问题我无法解决。
我使用此代码来检测类是否因reports-content失去输入控件的焦点而发生更改,或者计时器是否是导致更改的操作。
问题是,如果更改是由于失去对输入控件而不是计时器的关注而导致的,我只想做一些事情。
我想这样做,这样我就可以循环不同的输入,并且只有在“报告内容”更新为新数据后才尝试新的输入。
“计时器”不在我的控制范围内,因为它位于第三方网站 (tradingview.com) 上,该网站恰好使用React 框架,以防万一这一点很重要。每次价格变化时,它都会检测到我正在检查的对象的突变,这不是一个错误,这样做很好,但我需要能够辨别由此引起的突变(计时器/event/change),并且来自输入控件失去焦点。
下面是我当前看到的两个突变记录的示例,一个由事件引起,另一个由计时器或(价格变化注意到事件)引起。
下面是报告内容的示例。
//When the DOM is ready set the mutation listner.
$(document).ready(function(){
console.log("JQuery Ready");
var observer = new MutationObserver(function(mutations) {
mutations.forEach(record => {
var recordTarget = record.target;
if(record.addedNodes.length>0){
if(recordTarget.classList.contains("reports-content")){
console.log(recordTarget);
console.log(record);
};
}
});
});
//Use mutation observer on 'body' to wait for the existence of the .reports-content class node
var target = $('body')[0];
var config = {
childList:true,
subtree: true
};
observer.observe(target, config);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
610 次 |
| 最近记录: |