2009-05-17 4 views
0

actuellement j'écoute sur la touche "Entrée" pour commencer à envoyer un message,comment détecter les caractères multi-octets entrant fin par javascript?

Mais pour les caractères multi-octets, la touche "Entrée" est censée choisir un certain caractère.

Le problème est que je n'ai aucune idée comment détecter si un utilisateur est au milieu de l'entrée

un caractère multi-octets, et même s'il est dans ce processus, le message sera envoyé le premier

appuyez sur la touche "Entrée". Donc, l'expérience utilisateur est vraiment étrange.

Quelqu'un a une solution à cela?

Si vous ne recevez pas ce que je veux dire ci-dessus, peut essayer de discuter ici,

et une fois que vous avez commencé une conversation, de passer en mode multi-octets,

alors vous saurez ce que je signifier.

le lien est ici:

http://maishudi.com/OMegle.php

Répondre

0

Je suppose que votre référence à l'entrée multi-octets est une référence à « Méthodes d'entrée » (ou « éditeurs de méthode d'entrée » sur les fenêtres).

Malheureusement, il n'y a pas vraiment de solution pour l'instant - DOM3 allait ajouter des mécanismes pour cela mais il semble avoir abandonné ceci en raison de la complexité.

Une partie de la complexité provient du comportement très différent des méthodes de saisie individuelles, avant même de prendre en compte l'écart de comportement entre les navigateurs. Un bon exemple est de simplement vérifier quels événements clés vous recevez pour un ensemble de comportements avec le japonais, le coréen et (chinois traditionnel et simplifié). Les navigateurs ne peuvent pas éviter cela car ils répondent aux événements déclenchés directement par les éditeurs d'entrée. Les seules choses sur lesquelles vous pouvez vraiment compter sont les événements keyDown, et encore moins dans opera et firefox - Safari et IE fournissent tous les deux des événements keyDown lors de la composition IME, avec un charCode de 229, et un événement keyUp avec un charCode correspondant à la touche actuelle qui a été pressée.

Il y a un événement textInput, mais est pris en charge par Safari (et par procuration Chrome devrait soutenir aussi bien), mais pas nettement mieux que les événements standards de toute façon: -/

Questions connexes