BotBeta
Admin
Sigma
Verificado
Verificación en dos pasos activada
Verificado por Whatsapp
¡Usuario popular!
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Suscripción a IA
Veo que estás usando un callback de mutación para verificar si se añade un elementosigue igual, aparece el <a> y no lo detecta
<a>. Es importante tener en cuenta que este callback sólo se disparará cuando se añada un nuevo nodo al div observado. Si el elemento <a> ya está presente al cargar la página, o si es añadido a otro elemento que no sea el div observado, el callback no se disparará. Aquí hay una modificación al enfoque que verifica las mutaciones para ver si el nodo añadido es un div 'subockad' o un descendiente de él, y luego mira dentro del nodo añadido (y sus descendientes) para buscar elementos
<a>.
JavaScript:
// Selecciona los nodos objetivo
var targetNodes = document.getElementsByTagName('body')[0];
// Opciones de observador (qué mutaciones observar)
var config = { childList: true, subtree: true };
// Crea un timeout
var timeout = null;
// Función que se ejecutará después de 10 segundos sin detección de <a>
function doSomething() {
alert('No se detectó <a> en 10 segundos.');
}
// Función de callback que se ejecuta cuando se producen mutaciones
var callback = function(mutationsList) {
for (var mutation of mutationsList) {
if (mutation.type === 'childList') {
mutation.addedNodes.forEach(function(node) {
// Verificar si el nodo añadido es un 'subockad' o tiene un 'subockad' entre sus descendientes
var subockads = node.className === 'subockad' ? [node] : node.getElementsByClassName('subockad');
Array.from(subockads).forEach(function(subockad) {
var links = subockad.getElementsByTagName('a');
if (links.length > 0) {
alert('Se añadió un enlace al div.');
clearTimeout(timeout);
timeout = setTimeout(doSomething, 10000); // 10 segundos
}
});
});
}
}
};
// Crea una instancia del observador con la función de callback
var observer = new MutationObserver(callback);
// Empieza a observar el nodo objetivo con las opciones configuradas
observer.observe(targetNodes, config);
//Iniciar el timeout inicial
timeout = setTimeout(doSomething, 10000); //10 segundos
Este código observa todo el cuerpo del documento en busca de mutaciones y verifica si cada nodo añadido es un div 'subockad' o contiene un div 'subockad'. Entonces, busca elementos
<a> dentro del div 'subockad' y dispara las alertas correspondientes. Si no se añade un nuevo enlace <a> dentro de los 10 segundos, se activará la alerta 'No se detectó <a> en 10 segundos'.