Firefox et OnBlur ne fonctionne plus au bout d'un moment
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:
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:
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.