Bonjour,
je vous explique mon problème.
J'ai une fonction javascript qui est exécutée lors d'event (blur, paste, keyup, input)
Jusque là pas de soucis.
Le problème survient lors de l'utilisation d'un event avec IE. Cet event c'est le "click-droit paste".
La donnée est réellement inserée dans le champs après que la fonction ait été exécutée. Ce qui en résulte que cette fonction ne se terminera pas correctement vu qu'au moment de l'exécution, le champs est toujours vide.
Un fois que la fonction est terminée, on voit apparaître clairement la donnée du clipboard dans le champs. J'ai effectué ce test en affichant des alert avant et après l'exécution de la fonction.
Je pensais avoir résolu ce problème en insérant la donnée du clipboard dans le champs via la fonction clipboard de JS.
Cela fonctionne très bien, excepté lorsqu'une policy group est effective au niveau du domaine, empechant la lecture du clipboard.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $("#pic_main" + participantId).val(window.clipboardData.getData("Text"));
Voici la portion de code qui pose problème
Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 $("#pic_main" + participantId).bind('paste keyup input blur', function(e) { //alert(e.type); //alert("Particpant ID: "+participantId + "\n" + navigator.userAgent + "\n" + e.type + "\n" + window.clipboardData.getData("Text")); if (navigator.userAgent.indexOf("MSIE") != -1 && e.type == 'paste') $("#pic_main" + participantId).val(window.clipboardData.getData("Text")); //alert("call checkPic"); checkPic('picProposal?action=picAJAX', participantId); //alert("checkPic called"); });
En décommentant les alert, on voit clairement que l'insertion de la donnée est effectuée après le message d'alerte ("checkPic called").
Quelqu'un a-t-il déjà rencontré le problème ??
Y aurait-il une solution autre que la fonction clipboardData ??
Est-ce normal que l'insertion de la donnée dans le champs soit effectuée juste avant que la fonction soit terminée?
Pourquoi ne le fait-il pas directement, dès que l'event "paste" est catché ??
Merci d'avance pour vos réponses.
Partager