Safari, Chrome, Firefox и Internet Explorer поддерживают событие onpaste
(не уверены в Opera). Заблокируйте событие onpaste
, и вы сможете поймать всякий раз, когда что-то вставляется.
Написание этого достаточно просто. Добавьте обработчик события к введенному с помощью HTML:
<input type="text" id="myinput" onpaste="handlePaste(event);">
или JavaScript-DOM:
var myInput = document.getElementById("myInput");
if ("onpaste" in myInput) // onpaste event is supported
{
myInput.onpaste = function (e)
{
var event = e || window.event;
alert("User pasted");
}
}
// Check for mutation event support instead
else if(document.implementation.hasFeature('MutationEvents','2.0'))
{
/* You could handle the DOMAttrModified event here, checking
new value length vs old value length but it wouldn't be 100% reliable */
}
Из того, что я прочитал, Opera не поддерживает onpaste
событие. Вы можете использовать событие DOMAtrrModified
, но это срабатывало бы, даже если скрипты меняют значение поля ввода, поэтому вам нужно быть осторожным с ним. К сожалению, я не знаком с событиями мутаций, поэтому я не хотел бы испортить этот ответ, написав пример, на который я не был бы уверен.
@Ravi: не уверен, что я понимаю, обновление на ваш вопрос - вы имеете в виду, как это делали производители браузеров написать событие в? или что-то другое? –
Да, если я хочу закодировать свое собственное событие onpaste, как мне это сделать? –