私はcontenteditable div内の単語をインラインで解析し、タグ(@ ...、#...)をアンカータグで置き換える関数を書いています。私はkeyupイベントでそれを発射していた、そしてそれは完全に働いた。問題は、ユーザーがスペースを叩いただけでなく、単語以外の文字を打った後でもタグを置きたいということでした。 keyupイベントは入力された実際の文字ではなく、押されたキーにのみアクセスできるため、句読点は認識できませんでした。range.toString()はjavascript keypressイベントの最後の文字を切り捨てます
私がしたのは、keypressイベントに変更されました。アンカーを作成するときに、タグの最後の文字が機能しなくなりました。私のコードはhttp://jsfiddle.net/jwoah12/CcwSt/115/です。
wordStartとwordEndは正しい値を持つようですが、j.toString()は誤った結果を生成します。
おかげで、
ジャレッド
ありがとうございます!これはトリックです。ただし、入力が速すぎると、keyupイベントが逃してしまう可能性があるため、キーアップを使用する必要はありません。 – Jared