[英]How to prevent refresh after clicking the alert OK button? Return false doesn't work here
[英]Alert box doesn't show even after return false
看到代碼:
area.onkeydown = function(e){
e = e || window.event;
if(e.shiftKey && e.keyCode === 32){
e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
// no alert here
return false;
}
};
在這里,代碼有效,並且在按下Shift + Space時不會插入空格。 但是,一旦我插入alert
,它就無法工作,即插入了空格,警報框也沒有顯示。
area.onkeydown = function(e){
e = e || window.event;
if(e.shiftKey && e.keyCode === 32){
e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
alert("typed"); // this alert doesn't show
return false; // and space also gets insrted
}
};
我想念什么?
更新:
onkeyup
將顯示警報,但是會插入空格。 onkeypress
不會插入空格,但是只要按鍵保持按下狀態,警報就會保留。 因此,我想我沒有辦法使它正常工作。 正如Teemu所說 :
在您的撥弄下,該代碼段可以使用或不使用
alert()
而無需在IE11(Win7)中打印空格。 FF失去了preventDefault()
行為,盡管我可以看到警報。 在Chrome35中,警報僅在屏幕上閃爍,並且已打印空格。 (如果刷新速度足夠快,您的情況是?) IE使用OS窗口顯示警報,其他瀏覽器也有自己的實現,這似乎使事件處理混亂。
更新:我投票結束這個問題為離題,因為在最新的Chrome版本中,該問題不再能夠按照描述的方式重現。 現在按Shift + Space將顯示警報框,但不會插入任何空格。
嘗試使用onkeypress
而不是onkeydown
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.