在我的JSP的文本字段中,我想知道用户是输入数据还是粘贴。如何使用javascript识别此内容?
编辑: 根据安迪的回答,我知道我该怎么做,但是仍然对那些家伙如何写 onpaste 事件 感到好奇 。
Safari,Chrome,Firefox和Internet Explorer均支持该onpaste事件(不确定Opera)。锁定onpaste事件,只要粘贴了内容,您就可以捕获。
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事件,但是即使脚本更改了输入框的值也会触发该事件,因此您必须谨慎使用它。不幸的是,我对突变事件不熟悉,所以我不想写一个我不敢相信的例子来弄乱这个答案。
DOMAtrrModified