javascript - 在 MutationObserver 上返回 true
问题描述
我需要return true
从下面的代码中。但是,我正在努力return
获得 MutationObserver() 的任何价值。
我有 console.logged “按钮出现”的地方是我想要的地方return true
,但我似乎无法真正返回。
console.log("Holidays button displayed...")
为了确认,当我的条件得到满足时,我的代码确实可以工作并运行。但我必须找到一种方法来返回true。
//WAIT FOR BUTTON FUNCTION
function waitForElement(className, callBack){
window.setTimeout(function(){
var element = document.querySelector(className);
if(element) {
callBack(className, element);
} else {
waitForElement(className, callBack);
}
},1000)
};
let value = '';
// MUTATION OBSERVER
let observer = new MutationObserver(function(mutations) {
for (let i = 0; i < mutations.length; i++) {
if (mutations[i].oldValue === "button ng-hide") {
console.log("Button displayed...");
return true;
// value = true;
// return value;
};
};
});
// WAIT FOR
waitForElement(`[search-model="pod"]`,function(){
let target = document.querySelector('[search-model="pod"]"]');
observer.observe(target, { attributes : true, attributeOldValue: true, subtree: true});
});
在 MutationObserver 中返回真/假的最佳方法是什么?任何指针都会有所帮助!
我也尝试过承诺,但这似乎不起作用,因为我正在观看的按钮可能会间歇性地出现并重新出现在 DOM 中。而且我认为这个带有承诺的承诺只会在第一次返回true?(不是所有时候?)
function waitForElement(selector) {
return new Promise(function(resolve, reject) {
var element = document.querySelector(selector);
if(element) {
var observer = new MutationObserver(function(mutations) {
for (let i = 0; i < mutations.length; i++) {
if (mutations[i].oldValue === "button ng-hide") {
console.log("Holidays button displayed...");
resolve();
return;
};
};
});
let target = document.querySelector('[search-model="pod"]');
observer.observe(target, { childList: true, attributes : true, attributeOldValue: true, subtree: true});
};
});
};
waitForElement(`[search-model="pod"]`).then(function(element) {
console.log("Element Added", element);
return true;
});
解决方案
推荐阅读
- algorithm - 减少闭合轮廓中点数的已知算法
- python - 有没有办法在单个数据点内有多个绘图以与分类器一起使用?
- graphql - GraphQL 突变问题
- scala - 如何在 Scala 中区分 SortedMap 和 TreeMap?
- asp.net-core-mvc - 有条件地处理 ASP.NET Core 中的拒绝访问行为
- javascript - 如何始终在单击的元素下方打开 contextMenu?
- javascript - 无法在谷歌表单中设置依赖下拉
- ios - Xamarin iOS 在 UIButton 中显示图像和文本
- c# - 为什么在运行时调用重载函数时会发生 RuntimeBinderException?
- android - Android 应用程序 Api 1 与 Api 2 中的 Google Pay