Le meilleur que vous pouvez faire est d'utiliser DOM mutation events. Il existe divers événements tels que DOMNodeInserted
, DOMNodeRemoved
, DOMAttrModified
etc (voir la spécification d'événements DOM, liée à ci-dessus). Il y a un événement fourre-tout général appelé DOMSubtreeModified
qui est déclenché après une mutation DOM individuelle; cet événement se mouchant, vous pouvez donc définir un écouteur sur le document pour être informé de toutes les modifications apportées au DOM du document.
document.addEventListener("DOMSubtreeModified", function(evt) {
console.log("DOM mutation", evt);
}, false);
Ces événements sont pris en charge dans la plupart des navigateurs récents, à l'exception de IE (jusqu'à et y compris la version 8) et Opera, qui soutient certains evenbts mais notamment pas DOMSubtreeModified
.
Il sera impossible de bloquer l'accès aux méthodes et aux propriétés du DOM d'une manière suffisamment bonne pour des raisons de sécurité. JavaScript est un langage très dynamique avec potentiellement de nombreuses façons de contourner les obstacles que vous pourriez mettre en place. – bobince
Vous devrez creuser profondément dans le code du navigateur. Que voulez-vous dire par "* module *", avez-vous une extension d'api en tête? – Bergi