Какое событие вызывается при вырезании или вставке текста (или ctrl + z'd) в текстовой области? - PullRequest
4 голосов
/ 19 декабря 2010

Я использовал keyup, чтобы определить, когда изменяется содержимое текстовой области, но каким-то образом Facebook может обнаружить событие Ctrl + X в текстовом поле сразу после нажатия кнопки «X». Какое событие это будет?

Ответы [ 3 ]

3 голосов
/ 19 декабря 2010

Большинство современных браузеров поддерживают события cut, copy и paste.Попробуйте следующее, чтобы доказать это себе:

<textarea oncut="alert('Cut!')" rows="3" cols="40"></textarea>
0 голосов
/ 19 декабря 2010

Хе-хе, я понял это сам!

В событии нажатия клавиши для текстовой области:

window.setTimeout((function(self) {
    return function() {
        console.log(self.value);
        }
    })(this), 0);

Это даст текущее значение текстовой области, а не значение до нажатия клавиши. Пока я проверял это только в Firefox 4.

Теперь мое текстовое поле с автострадами так же хорошо, как и у Facebook!

0 голосов
/ 19 декабря 2010

Я думаю, они связывают клавиатуру и устанавливают какую-то переменную состояния при нажатии клавиши управления, затем, когда они получают событие keyup, они проверяют переменную состояния и действуют соответственно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...