导航
当前位置:网站首页 > 网络教程 > alert弹出框是二次定位吗,alert框自动确定

alert弹出框是二次定位吗,alert框自动确定

作者:hacker 日期:2022-08-05 分类:网络教程

导航:

重复alert()两次提示,当我点击确定后,又弹出重复的消息框,本来一次就够了的,是什么原因啊?

closewindow openit validate 三个函数都是在一个级别,都是全局函数,

加载页面之后,closewindow openit validate, 三个函数都会被执行一遍;

而你的openit()函数,有嵌套调用了validate(),所以会弹出alert()两次提示~~

alert 可不可以出现两个按钮,分别为“确定”,“取消”

alert可以出现两个按钮,操作方法如下:

1、首先创建一个HTML文件,结构如下图所示。

2、开始写代码,先写第一句alert消息提示框:scriptalert('你好,2017');/script。

3、再写第二句,或者说这是第二种写法,如下图所示。

4、运行结果:并没有一次性将对话框都弹出,而是一个个弹出,按照代码书写的顺序弹出的。

5、都按确定之后,就继续执行程序了。

js中alert函数的实现原理是什么?

alert 不是 js 核心的函数。

js 一共 7+ 个全局函数:escape( )、eval( )、isFinite( )、isNaN( )、parseFloat( )、parseInt( )、unescape( )…… 但是不包括 alert。

alert 是 BOM 中的成员函数,具体说是 window.alert。

对话框显示在最前,并且禁止了页面其他的操作 对话框有两种,一种是模态,一种是非模态。很显然 window.alert 函数弹出的对话框是模态的。由于 js 没有 IO(输入输出),所以浏览器的 window 对象提供了两个函数,alert(对应O),prompt (对应 I)。

为什么alert了两次

  不知道这算不算是HTML label标签的bug,之所以alert了两次,是因为你在给label控件注册事件的时候,它里面的input 控件好像也被注册上了同样的事件。

    javascript里事件捕获的时候,是从外到内进行传递的,所以这两次alert第一次是在label控件上触发的,第二次是在input控件上触发的,最奇葩的就是明明只给外层的label注册的事件处理程序,但运行是外层lable跟内层input居然有了,所以会运行两次。 你可以这样测试看一下:

html

  head

    script language="javascript"

      function Window_Load(){

        var oBtn = document.getElementById("bbb");

        oBtn.onclick = function(){

          var src = event.srcElement || event.target;

          alert(src.tagName); 

        }  

      }

    /script

  /head

  body onload="Window_Load();"

  label id="bbb"

   input id="text1" type="checkbox" /自动登录

  /label 

  /body

/html

具体为什么会这样,我查遍了资料,也没找到原因!也许就是label控件的一个bug吧,用div里面套input checkox 就不会有这个问题。

    建议把input控件(复选框)放到label控件外面。感觉你可能要实现的是,在点击label里的文字的时候,也能同时对复选框进行点选。 这时只需要给label标签里加个for属性,属性值对应复选框的ID就好了:

html

  head

    script language="javascript"

      function Window_Load(){

        var oBtn = document.getElementById("text1");

        oBtn.onclick = function(){

          var src = event.srcElement || event.target;

          alert(src.tagName); 

        }  

      }

    /script

  /head

  body onload="Window_Load();"

 input id="text1" type="checkbox" / 

 label id="bbb" for="text1" 自动登录 /label 

  /body

/html

你可以测测看看。

猜你还喜欢

已有5位网友发表了看法:

  • 访客

    访客  评论于 [2022-08-05 11:13:13]  回复

    )。为什么alert了两次   不知道这算不算是HTML label标签的bug,之所以alert了两次,是因为你在给label控件注册事件的时候,它里面的input 控件好像也被注册上了同样的事件。    ja

  • 访客

    访客  评论于 [2022-08-05 13:34:49]  回复

    、js中alert函数的实现原理是什么?4、为什么alert了两次重复alert()两次提示,当我点击确定后,又弹出重复的消息框,本来一次就够了的,是什么原因啊?clos

  • 访客

    访客  评论于 [2022-08-05 06:27:39]  回复

    d="bbb"   input id="text1" type="checkbox" /自动登录  /label   /body/html具体为什么会这样,我查遍了资

  • 访客

    访客  评论于 [2022-08-05 09:27:21]  回复

    rt(对应O),prompt (对应 I)。为什么alert了两次   不知道这算不算是HTML label标签的bug,之所以alert了两次,是因为你在给label控件注册事件的时

  • 访客

    访客  评论于 [2022-08-05 13:40:35]  回复

    对话框有两种,一种是模态,一种是非模态。很显然 window.alert 函数弹出的对话框是模态的。由于 js 没有 IO(输入输出),所以浏览器的 window 对象提供了两个函数,alert(对应O),prompt (对应 I)。为什么a

欢迎 发表评论:

{/if}