Imaginez une application Web qui utilise des gestionnaires d'événements de clavier personnalisés qui pourraient effectuer des événements de bulletage - ou de l'événement. Pour clarifier ma question: Je ne sais pas quels manutentionnements de la méthode existent et où ils sont définis - c'est ce que j'essaie de le savoir. P>
Y a-t-il un moyen (par exemple, ADDON Firefox / Firebug) à Déboguer chaque frappe de frappe / clavier fort>, quelque chose comme: p>
3 Réponses :
Je ne connais aucune extension à cette fin. Mais vous pouvez écrire des gestionnaires pour des événements clés, puis imprimer une sortie appropriée sur la console JavaScript. Aussi, vous pouvez aussi jeter des traces. Firebug a intégré la fonctionnalité de trace: Cette page est un bon exemple pour gérer les événements du clavier. < / p> console.trace () code>
. Vous pouvez utiliser Google avec js Trace CODE> Mots-clés pour trouver des outils de trace aussi. P>
Pour cela, je dois savoir où sont définis les gestionnaires de la clé de l'événement. Mais c'est exactement la raison de ma question, je ne sais pas quelles méthodes de gestionnaire d'événements sont invoquées. Imaginez un très grand et ancien système logiciel - les choses pourraient devenir difficiles à trouver toutes.
in IE Vous pouvez utiliser le mot-clé dans le contexte de votre défi: p> Je trouve que cela est le plus efficace Technique de débogage, mais encore une fois, je passe beaucoup de temps à IE. Beaucoup de gens sont confortables avec Firebug mais je le trouve causser et beaucoup moins intuitif que le débogueur d'IE. Le débogueur de IE permet de faciliter l'évaluation des montres et de l'expression, et fournit également des info-bulles basées sur une réflexion interactive (comme vs débogueur). P> aussi, selon votre question "trace quelle méthode a été appelée" - la pile d'appel est très réactive et Facile à suivre Retour / UP. P> Mise à jour: p> Voici un script à placer au bas de chaque page aux événements piège et débogage, IE: P> ; code>. Pas sûr de la convivialité des X-navigateur:
<script type="text/javascript">
function wrapIfHandled(el, evt) {
if (el && evt && el['on' + evt]) {
el['_on' + evt] = el['on' + evt];
el['on' + evt] = function (e) {
foo(e, el['_on' + evt]);
};
}
}
function wrapAll() {
var allEl = document.getElementsByTagName("*");
for (var i = 0; i < allEl.length; i++) {
wrapIfHandled(allEl[i], 'click');
// wrapIfHandled(allEl[i], other event names <keyup, keydown, etc>
}
}
function foo(e, d) {
debugger;
d(e);
}
wrapAll();
</script>
Pour cela, je dois savoir quelles méthodes sont utilisées comme gestionnaires d'événements - mais c'est ce que j'essaie de le savoir.
Pouvez-vous fournir un peu plus de détails sur votre problème? Vous n'avez pas accès au code JavaScript, page HTML / Java / PHP / ASPX? Ou les deux? Avez-vous accès à un code source du tout?
Oui, j'ai accès au code source. Imaginez une ancienne application Web qui définit individuellement les gestionnaires d'événements par page et non dans un lieu général. J'ai le problème que dans certains navigateurs à certaines pages, certains clés de frappe ne fonctionnent pas correctement (mais il n'y a pas d'erreurs JavaScript). J'ai besoin d'un outil pour tracer tous les événements du clavier pour pouvoir voir rapidement où l'événement est traité.
J'ai fait de mon mieux pour vous aider - ne savez-vous pas comment votre site fonctionne et de ce que vous utilisez pour la gestion des événements, mais s'il n'y a pas de composant d'observateur tiers en place, le code devrait être DWARE.