![](/img/trans.png)
[英]ReactJS onPaste event: how to determine if user has selected some of textarea's existing content
[英]How to determine if an onChange event was called by an onPaste
我有一個與onChange
事件關聯的 Javascript 函數。 我了解某些瀏覽器在文檔或元素級別支持onPaste
。 有沒有辦法確定onChange
事件是否是由“粘貼”引起的 - 我嘗試添加一個在onPaste
時設置的全局onPaste
,然后在我的onChange
例程結束時重置它,但不能保證onPaste
函數在onChange
之前被調用。
這對我來說很好:
<input type="text" onchange="ValueChanged(event, this);" onpaste="this.setAttribute('pasted', '1');"/>
<script type="text/javascript">
function ValueChanged(evt, sender) {
var blnCameFromPaste = ((sender.getAttribute("pasted") || "") == "1");
if (blnCameFromPaste)
alert("changed by paste");
else
alert("changed without paste");
sender.setAttribute("pasted", "0")
}
</script>
您可以使用 onKeyPress/onKeyUp/onKeyDown/onPaste 而不是 onChange。
我不認為你能普遍做到這一點。 查看測試此功能的當前狀態。
檢測粘貼的一種方法是在字段獲得焦點后計算“按鍵”之間的時間。
每次看到 onchange 事件時,將字段值的當前長度與前一個長度進行比較,並將當前時間與前一個時間進行比較。 如果輸入字符的速度比人們想象的要快,那么它們一定是被粘貼了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.