2016-01-08 1 views
0

J'essaie de créer un script Greasemonkey. Il doit regarder la page qui apparaît occasionnellement des coupons et les prendre.Surveillance de la première div dans la liste

Les coupons sont présentés avec une liste de Je voudrais garder la trace du premier élément, et pour cela utiliser MutationObserver. Le problème est que le site utilise ajax et le premier coupon devient le deuxième, et ainsi de suite. Et MutationObserver continue à le surveiller et ne remarque pas le nouveau coupon. Aide, s'il vous plaît, comment je peux seulement regarder en haut (premier) dans la liste div de l'élément?

// select the target node 
var target = document.querySelector('.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); 

Mise à jour:

// select the target node 
var target = document.querySelector('.id'); 

// create an observer instance 
var observer = new MutationObserver(function(mutations) { 
    mutations.forEach(function(mutation) { 
    console.log(mutation.addedNodes[0].textContent); 
    document.getElementsByClassName('nameshop')[0].click(); 
    });  
}); 

Il donne un nouvel élément avec la div class = "id" et cliquez où je veux. Mais cela arrive si je fais des changements à travers Firebug. Si le site est mis à jour, le script n'a pas remarqué.

Répondre

0

Vous pouvez également utiliser le résultat des mutations de cette façon: Il offre une propriété addedNodes. Donc, si un nœud est ajouté, utilisez simplement mutations.addedNodes (de Type NodeList). Pour cela, voir: https://developer.mozilla.org/de/docs/Web/API/MutationObserver

var observer = new MutationObserver(function(mutations) { 
    mutations.forEach(function(mutation) { 
    console.log(mutation.addedNodes[0]); 
    });  
});