无法输入Javascript警报

时间:2017-10-26 11:23:14

标签: javascript

有什么方法可以在出现提醒框时阻止Enter键盘?因此,用户需要按Esc或单击Ok按钮删除警报。

<script>
alert('Hello');
</script>

1 个答案:

答案 0 :(得分:1)

正如我之前的评论所述,标准的javascript警告:

alert("hello world!");

是一个由javascript控制范围之外的浏览器处理,设置样式和执行的功能。

有了这个说你可以通过制作一个自定义弹出框来相当容易地做到这一点。

我不会过多地介绍样式,但下面是一些可以为样式框构建的代码:

<div id="alertBox" style="position:absolute;height:100%;width:100%;z-index:9999;background:white">
  <div id="alertText" style="position:relative;text-align:center;top:45%">
    You must press "esc" to escape!
  </div>
</div> 

然而,我将更详细地解释javascript。这是代码:

function code(e) {
  e = e || window.event;
  return(e.keyCode || e.which);
}

document.onkeypress = function(e){
    var key = code(e);
    if(key == 27){
      //run some code, they pressed the esc key
      document.getElementById('alertBox').style.display = "none"; 
    }
};

前4行代码存储了哪个键被压入一个名为&#34; e&#34;的变量。

document.onkeypress函数在按下某个键时开始侦听。 &#34; e&#34;变量传递给函数,然后保存到名为&#34; key&#34;的变量中。为清楚起见。

&#34; key&#34;变量然后针对&#34; esc&#34;进行测试。键盘上的键号是27.如果&#34;键&#34;等于27比我们运行一些代码,如果不是,我们忽略了按键。

我们在此处运行的代码会删除我们制作的警告框。

我希望有所帮助!

P.S。这个答案不使用jQuery,但如果你已经在项目中使用了jQuery,jQuery会减少代码。