• Home
  • A Propos
  • Greasemonkey

2

août

Utiliser la première occurrence dans une regexp [Javascript]

Posted by Aymeric  Published in Niveau intermédiaire, Programmation

[niveau: intermédiaire]

Lorsque vous utilisez une expression régulière, cela va vous retourner un maximum de caractères, ainsi si nous prenons la chaine « foo:bar:gniii » avec la regexp /^(.*):(.*)$/, on va avoir « foo:bar » d’une part et « gniii » d’autre part.
Alors comment faire pour obtenir la première occurrence de « : » dans notre chaine ? Il suffit d’ajouter le caractère clé « ? ».
Ainsi dans notre exemple il faut écrire : /^(.*?):(.*)$/, qui retournera « foo » et « bar:gniii ».

A noter que cela est valable pour la fonction « match » de Javascript, mais aussi pour les autres langages comme PHP.

Tags: développement, javascript, Programmation, regexp

no comment

26

mar

Encoder les caractères spéciaux d’une URL en Java (comme Javascript.escape()) [Programmation]

Posted by Aymeric  Published in Niveau intermédiaire, Programmation

[niveau intermédiaire]

Il est possible de reproduire la fonction escape() de Javascript pour le langage Java. Cela permet par exemple de transformer « François » en « Fran%E7ois » ou encore « Maël » en « Ma%EBl ».

public String myEncodeURI(String str) {
  StringBuffer ostr = new StringBuffer();
    for(int i=0; i<str.length(); i++) {
      char ch = str.charAt(i);
      if ((ch >= 0x0020) && (ch <= 0x007e))
        ostr.append(ch); // Pas besoin de convertir
      else {
        // conversion en HEX
        String hex = Integer.toHexString(str.charAt(i) & 0xFFFF);
        ostr.append("%"+hex.toUpperCase());
      }
    }
    return (new String(ostr));
}

Tags: java, Niveau intermédiaire, Programmation

no comment

5

nov

Connaître la version d’Internet Explorer [Javascript]

Posted by Aymeric  Published in Navigateur, Programmation

(niveau intermédiaire)

Il est possible de connaître la version d’Internet Explorer en Javascript en utilisant le User Agent. Cependant, IE8, lorsqu’il est en mode compatibilité, va retourner IE7 quand on l’interroge. Cela peut poser problème. Il existe une solution qui permet de détecter IE8 même dans ce mode spécial, et sans utiliser les commentaires conditionnels :

// retourne un entier (5, 6, 7 ou 8), ou false si ce n'est pas IE
function getIEVersion() {
  if (!!(window.attachEvent && navigator.userAgent.indexOf('Opera') === -1)) {
    var ver = navigator.userAgent.match(/MSIE ([0-9.]+);/);
    if (ver != null && ver[1] != undefined) {
      ver = parseInt(ver[1]);
      if (ver == 7) {
        if (typeof (window.external.AddToFavoritesBar) != "undefined" ||
            typeof (window.external.AddService) != "undefined" ||
            typeof (window.external.AddService) != "undefined") return 8;
      }
      return ver;
    }
  }
  return false;
}

Tags: javascript, Navigateur, Niveau intermédiaire, Programmation

no comment

4

sept

Simuler un click sur un bouton ou un lien [Programmation]

Posted by Aymeric  Published in Niveau débutant, Programmation

[niveau débutant]

En Javascript on peut facilement simuler un clic sur un élément d’une page HTML. Pour cela on utilisera la fonction suivante :

function fireEventClick(elem){
    if(document.createEvent){
      var e = document.createEvent('MouseEvents');
      e.initMouseEvent('click', /* Event type */
      true, /* Can bubble */
      true, /* Cancelable */
      document.defaultView, /* View */
      1, /* Mouse clicks */
      0, /* Screen x */
      0, /* Screen y */
      0, /* Client x */
      0, /* Client y */
      false, /* Ctrl */
      false, /* Alt */
      false, /* Shift */
      false, /* Meta */
      0, /* Button */
      null); /* Related target */
      elem.dispatchEvent(e);
    } else { // pour IE
      elem.click();
    }
}

Tags: javascript, Niveau débutant, Programmation

1 comment

4

août

Indenter un fichier XML [A bookmarker]

Posted by Aymeric  Published in Astuce, Niveau débutant, Programmation, À bookmarker

[niveau: débutant]

Grâce au site Aysoon j’ai découvert http://xmlindent.com/. Ce service gratuit propose de copier/coller du code de type XML qui va alors vous être présenté correctement indenté.

Mise à jour: dans les commentaires, Lio propose aussi http://www.indentation-xml.com/ qui, apparemment, supporte mieux les caractères accentués.

Tags: Astuce, indenter, Niveau débutant, Programmation, web service, XML

4 comments

28

juil

Stopper la propagation d’une action [Programmation]

Posted by Aymeric  Published in Niveau expert, Programmation

[niveau: expert]

Lorsque vous avez un bouton <button> quelque part dans un formulaire HTML, alors que vous cliquez dessus avec Firefox, ce dernier va vouloir envoyer le formulaire, alors même que le bouton n’a pas cet objectif. En effet, supposons que vous vouliez que l’action onclick actionne une quelconque fonction javascript de votre cru.

Pour éviter ce comportement avec Firefox, on peut essayer d’insérer un return false qui aura plus ou moins de succès:

<button id="myButton" onclick="myFunction(); return false;">do it!</button>

Le return false donnera un résultat très aléatoire, et c’est pourquoi je conseille plutôt d’utiliser une fonction qui va stopper la propagation de l’évènement :

<button id="myButton" onclick="stopAction(event); myFunction();">do it!</button>
function stopAction(e) {
  if (!e) e = window.event;
  if (e.cancelBubble != undefined)
    e.cancelBubble = true;
  if (typeof e.stopPropagation != "undefined") {
    e.stopPropagation();
    e.preventDefault();
  }
  return false;
}

Avec ça, lorsque vous cliquez sur le bouton, la page ne devrait pas être rechargée.

Tags: firefox, javascript, Niveau expert, Programmation

1 comment

15

mai

Algorithmes de tri [Programmation]

Posted by Aymeric  Published in Niveau expert, Programmation, À bookmarker

[niveau: expert]

Lorsqu’on programme il arrive très souvent de devoir mettre en place un script de tri personnalisé. Si on se souvient de ses années d’études, on peut réussir à extraire de sa mémoire les brides d’un algorithme, mais est-ce vraiment performant ?

David Martin s’est amusé à regrouper tous les algorithmes de tri sur son site et à fournir une petite animation pour chacun afin d’illustrer leur mode de fonctionnement. Vous pourrez donc facilement trouver la formule qui convient le mieux à votre application.

Tags: À bookmarker, Niveau expert, Programmation

no comment

6

mai

Tester des expressions régulières (RegExp) en ligne [Programmation]

Posted by Aymeric  Published in Niveau expert, Programmation

[niveau: expert]

Vous connaissez certainement les RegExp. Lumadis.be propose de tester nos expressions régulières en utilisant les fonctions PHP preg_match, preg_match_all et ereg.

Un outil en ligne bien pratique pour ces expressions parfois difficiles à formater !

EDIT: on notera aussi l’existence de cet autre outils en ligne très complet : http://gskinner.com/RegExr/

Tags: Niveau expert, php, Programmation, regexp

no comment

Catégories

  • À bookmarker
  • Application
  • Astuce
  • Debug
  • Divers
  • Images
  • Linux
  • MacOS
  • Navigateur
  • Niveau débutant
  • Niveau expert
  • Niveau intermédiaire
  • Partage
  • Performance
  • Programmation
  • Sécurité
  • Téléphonie
  • Web Design
  • Windows

Mots-clefs

À bookmarker Application Astuce astuces avi commencement convertisseur css débutant Debug email emule expert extensions facebook firefox ftp GMail greasemonkey html IE Images intermédiaire javascript Linux mobile musique Navigateur Niveau débutant Niveau expert Niveau intermédiaire Nokia Partage php Programmation recherche regexp Sécurité téléphone Téléphonie vidéo Vista Web Design Windows wordpress

Archives

  • août 2010
  • juillet 2010
  • juin 2010
  • avril 2010
  • mars 2010
  • février 2010
  • janvier 2010
  • décembre 2009
  • novembre 2009
  • octobre 2009
  • septembre 2009
  • août 2009
  • juillet 2009
  • juin 2009
  • mai 2009
  • avril 2009

Blogroll

  • Ajaxian
  • Alsacreations
  • iPhon.fr
  • Life Hacker
  • Performance Web
  • StandBlog

Pages

  • A Propos
  • Greasemonkey

Méta

  • Flux RSS
  • Administration

Recent Entries

  • Problème d’uid d’un utilisateur Cygwin [Windows]
  • Emuler Internet Explorer de Windows Mobile [Web Design]
  • Utiliser la première occurrence dans une regexp [Javascript]
  • Mettre « ajouter à la liste du Lecteur Windows Media » comme action par défaut [Windows]
  • Mount un disque USB NTFS en read/write [Linux]
  • Mettre à jour automatiquement WordPress sans FTP [wordpress]
  • Joindre deux parties d’un film AVI en un seul film [Astuce vidéo]
  • Encoder les caractères spéciaux d’une URL en Java (comme Javascript.escape()) [Programmation]
  • Couper simplement un fichier vidéo .avi [Astuce]
  • Activer la compression GZip sur WordPress [Performance]

Recent Comments

  • Aymeric in Indenter un fichier XML [A bookmarker]
  • lio in Indenter un fichier XML [A bookmarker]
  • Aymeric in Activer la compression GZip sur Wordpress [Perform…
  • Audiofeeline in Activer la compression GZip sur Wordpress [Perform…
  • fjsorg in Bloquer les popups de publicité d'Avira AntiVir […
  • Kevin Hinault in Bloquer les popups de publicité d'Avira AntiVir […
  • Samy in Simuler un click sur un bouton ou un lien [Program…
  • Aymeric in Migrer un forum vers du phpbb3 [Astuces]
  • Nico in Migrer un forum vers du phpbb3 [Astuces]
  • Aymeric in Utiliser la fonction mail() de PHP avec exim4 [Lin…
  • Random Selection of Posts

    • Utiliser la première occurrence dans une regexp [Javascript]
    • Tester votre site dans Opera Mini [Web Design]
    • Nokia ouvre son store d’applications [Nokia]
    • Un seul clavier et une seule souris pour deux ordinateurs (ou plus) [Application]
    • Trouver une image d’une taille précise [Astuce Google]
    • Agrandir la taille d’un disque dur de VirtualBox [Machine Virtuelle]
    • Améliorez votre user experience sur les sites que vous aimez [Greasemonkey]
© 2008 Kodono is proudly powered by WordPress
Theme designed by Roam2Rome