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 :
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 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"; }
Sur tous les navigateurs, ça fonctionne très bien jusqu'à un moment où sur Firefox le Blur ne fonctionne plus.
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"; }
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.
Partager