![](/img/trans.png)
[英]When the iframe is focused, the parent window events are not called. How to prevent it?
[英]Javascript: How to prevent triggering focus on input when window is focused?
我有一個經典的輸入案例,在獲得焦點時會被清除。
問題是當用戶從電子表格中復制一些數據,例如,然后回來將這些數據添加到輸入時,輸入的焦點事件被觸發,並且他們輸入的任何內容都被清除。
如何防止 onfocus 在由於瀏覽器窗口焦點而不是由於點擊輸入、標簽、點擊標簽或頁面中的任何傳統操作而被觸發?
請不要使用 JQUERY。
編輯:好吧,顯然有些人喜歡在每次帖子沒有一些代碼時投反對票。 所以如果你需要一個代碼來掌握這個簡單的想法,這里是:
<input type=text onfocus="this.value=''">
從技術上講,切換窗口確實會導致元素失去/重新獲得焦點。 這當然會觸發focus
事件處理程序。 無法區分導致焦點事件發生的原因。
如果您只想在手動選擇時清除該字段,請改用click
事件:
<input type=text onclick="this.value=''">
您可以檢測頁面是否失去焦點。 可以使用它來推斷當input
重新獲得焦點時是否應該清除input
。 我不確定事件順序是否重要,或者事件順序是否因所涉及的瀏覽器而異。
<input type=text>
donotclear = false;
addEventListener('blur',function(e){
donotclear = true;
});
document.getElementsByTagName('input')[0].addEventListener('focus',function(e){
if(donotclear) {
donotclear = false;
} else {
this.value = '';
}
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.