Bonjour,

J'ai une application en ASP.Net où tous mes composants TextBox contiennent deux évènements "onblur" et "onfocus".
La finalité :
- Je voudrais permettre la sélection dans les contrôles de saisies
- Je voudrais afficher le contrôle avec une classe particulière lors du focus
- Je voudrais empêcher la sélection de texte ou autres en dehors du contrôle
- Je voudrais remettre le contrôle dans un état d'affiche standard dans le blur

Donc,
Sur l'évènement onfocus, j'ai ce bout de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
function SetBodyDragOn(o)
{
  document.body.onselectstart = new Function("return true;");
  document.body.ondragstart = new Function("return true;");
  document.body.onselect = new Function("return true;");
 
  if (o)
    o.className = "InputEditingOn";
}
Et sur le onblur, j'ai :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
function SetBodyDragOff(event, o)
{
  if (typeof event.preventDefault != 'undefined') event.preventDefault();
  document.body.onselectstart = new Function(" {event.returnValue=false; try { event.stopPropagation(); event.preventDefault() } catch (ex) {alert(ex.message)} return false; } ");
  document.body.ondragstart = new Function(" {event.returnValue=false; try { event.stopPropagation(); event.preventDefault() } catch (ex) {alert(ex.message)} return false; } ");
  document.body.onselect = new Function(" {event.returnValue=false; try { event.stopPropagation(); event.preventDefault() } catch (ex) {alert(ex.message)} return false; } ");
 
  if (o)
    o.className = "InputEditingOff";
}
Sur tous les navigateurs, ça fonctionne très bien jusqu'à un moment où sur Firefox le Blur ne fonctionne plus.
Le curseur reste dans le control (même en utilisant "Tab") et donc je suis bien embêté.

Pourquoi ce comportement ?
Pourquoi ça marche bien jusqu'à un stade (problème de mémoire certainement) ?
Je suis obligé de redémarrer mon firefox pour que ça refonctionne correctement.

Merci pour vos lumières,
Zoi.