1

モバイルプロジェクト (PhoneGap を使用) でCodeMirror を使用していますが、「 > 」キーを押すと特定の CodeMirror 関数が開始されます。

私のアプリケーションには、ユーザーがソフトキーボードで見つけなくても「>」を挿入できるクイックボタンがあります。問題は、CodeMirror が文字コード>ではなくキーストロークを検出することです。.

そのため、ユーザーがボタンを押しても、キーストロークが検出されなかったため、コードは開始されません。

jQuery:

$('.html-inp').click(function() { 
    var txt = $(this).text().toString();
    editor.replaceSelection(txt, focus);
    editor.focus();
});

HTML:

<a href='#' data-role='button' id='a1' class='html-inp'>&#62;</a>

文字コードを挿入するだけでなく、キーが押されたとアプリに思わせる方法を知っている人はいますか?

4

1 に答える 1

2

編集:ティム ダウンは正しいです。キー コードに照らして文字コードを見落としていたようです。>キャラクターには がcharCodeあります。62これは、jQuery イベント オブジェクトのwhichkeyCode、およびcharCodeプロパティで送信されるものでもあります。以下の適切な変更を加えました。

次の HTML を試してください。

<a href='#' data-role='button' id='a1' class='html-inp' data-char='62'></a>

そして、次の jQuery:

$('.html-inp').click(function() {
    var e = jQuery.Event('keypress'),
        char = $(this).data('char');
    e.shiftKey = true;
    e.which = char;
    e.charCode = char;
    e.keyCode = char;
    editor.replaceSelection(String.fromCharCode(char), focus);
    editor.trigger(e);
});

これにより、ブラケットがエディターに挿入され、エディターでkeypressイベントがトリガーされ、残りのコードがそれに応じて動作できるようになります。

于 2013-09-18T14:47:27.143 に答える