Affichage des articles dont le libellé est dev. Afficher tous les articles
Affichage des articles dont le libellé est dev. Afficher tous les articles
1/12/2009

Débugger avec Firebug sous Firefox en testant en parallèle avec IE, Opera et Chrome

Si vous développez et débuggez votre application sous Firefox et utilisez les méthodes de l’objet console de Firebug, tel que :

console.debug(maVariable);
console.info('Hello World :', monApplication.version);
console.log('Logged in');

Il vous est alors impossible de tester votre code en parallèle sous Internet Explorer, Opera et Chrome[1] sans voir apparaitre un de ces messages :

/* IE */
Erreur : 'console' est indéfini

/* Opera */
Error:
name: ReferenceError
message: Statement on line 437: Undefined variable: console

/* Chrome (v1.x.xxx.x) */
Uncaught TypeError: Object #<a console="console"> has no method 'debug'

 

Commençons donc par un petit rappel sur les moyens de débug offert par ces différents navigateurs :

 

Internet Explorer

Il n’existe pas de console en natif qui propose les mêmes fonctionnalités que celles offertes par Firebug. Cependant des plugins tel que DebugBar devraient permettre cela.

 

Opera

Opera possède sa propre méthode postError() mais son utilisation est limitée car elle n’affiche pas le contenu des objets

opera.postError([1,2,3,4,5]);//Affiche: 1,2,3,4,5
opera.postError('Mon tableau',[1,2,3,4,5]);//Affiche: Mon tableau,1,2,3,4,5
opera.postError({maPropriete: 'Hello', maMethode : function(){return 'World';}});//Affiche: [object Object]

Google Chrome

Dans ses dernières versions (testé sous 2.0.156.1) Chrome supporte partiellement, via sa Console Javascript (Ctrl+Maj+J) les méthodes suivantes :

console.debug();
console.info();
console.log();

Partiellement car il est actuellement impossible de passer plusieurs objets/tableaux via un seul appel

monTableau = [1,2,3,4,5,6];
monObjet = {maPropriete : 'Hello', maMethode : function(){return 'World';}};
console.debug(monTableau,monObjet);//Affiche: [1, 2, 3, 4, 5, 6] Object
console.debug(monObjet);//Affiche le contenu de l'objet monObjet

La solution

Voici un bout de code (snippet) à placer avant tout appel aux méthodes console.debug, console.info et console.log.

//On créé l’objet console s’il n’existe pas (sous d’autre navigateur que Firebox & Chrome)
if(typeof console !== 'object')
     console = {};
if((typeof console.debug) !== 'function')//On pourrait aussi vérifier pour console.info et console.log
{
     if(typeof opera === 'object')//On redirige les appels vers opera.postError();
         console = {debug : function(){return opera.postError(arguments);}, info : function(){this.debug('[INFO] ',arguments);}, log :
function(){this.debug('[LOG] ',arguments);}};
     else//Ne rien afficher sur les autres navigateurs
         console = {debug : function(){return true;},info : function(){return true;}, log : function(){return true;}};
}

Il vous est maintenant possible de tester (voir même de debugger si vous êtes sous Chrome et/ou Opera) votre application sans vous soucier de supprimer les lignes de debug pour Firebug. Je vous conseille toutefois de placer ce bout de code dans l’événement DomReady afin d’éviter tout problème de chargement.

DomReady avec jQuery :

$(document).ready(function(){ /* bout de code à copier ici */ });

DomReady avec MooTools:

window.addEvent('domready', function() { /* bout de code à copier ici */ });

[1] Versions 1.x.xxx.x de Chrome

5/20/2008

Webmonkey une ressource pour webdeveloppeur

Je viens de découvrir le site webmonkey qui fourni un ensemble de ressource (tutoriels, code snippet, cheat sheets) aux web développeurs. C'est en fait un gros wiki, ou chacun, une fois connecté, peux modifier, proposer une évolution du code présenté dans les articles et tutoriels. Pour le moment c'est un peu vide, mais pourquoi pas.

Seul problème, leurs flux rss est invalide, pas moyen de l'ajouter à mon netvibes ! En fait leurs flux rss est très mal optimisé, c'est simplement un copier/coller de l'article entier, avec les codes javascript pour l'édition etc... Je pense que le problème pourrait-être corrigé si ils ne laissaient que le texte sans nous ajouter du code javascript superflus et des remplis de classe css.
4/14/2008

Ma petite librairie Windows

J'ai créé une petite libraire windows que j'utilise de tous mes programmes nécessitant l'utilisation de l'API Windows. Cette petite librairie me permet de :
  • Créer des rectangles *
  • Changer la couleur/arrière plan du texte *
  • Gérer des barres de progression *
  • Gérer les évènements claviers
  • Récupérer la largeur et la hauteur de la console *
  • Passer la console en mode plein écran
  • Remplir/effacer une zone de la console
* fonction utilisé dans le programme de démonstration

Voici donc une petit programme qui dessine une fenêtre, affiche une barre de progression et la fait bouger en fonction du sons. Appuyez sur une touche lorsque vos oreilles crieront de douleurs !

Le programme est disponible ici :
http://fg.logiciel.free.fr/lycee/CPI1/Programme_C/sons.exe
»
 
 
Made with on a hot august night from an airplane the 19th of March 2017.