js的alert函数执行的时候其他js文件或者html文件会停止执行吗

如题,就是说alert后出现一个对话框,我没有点关闭,其他js文件或html会被加载吗,我遇到一个问题就是在页面加载时调用一个div的click事件,却没有被执行,但是在调用事件前面加上alert('xx');运行后手动关闭提示框click事件就调用成功,为什么,也写了个sleep函数,但不论sleep多久click事件也不会被执行,那我要怎样才能自动调用这个click,求大神解答

你这种情况,如果我没有“猜”错,你的JS应该放在了HTML代码的前面。

而且并没有进行(window.onload())加载。

如果你把你这些代码包含在onload中,就好了。

原理是:
首先网页接你所编写的代码顺序依次加载,当然有时候也会由于网络原因导致加载成功的顺序有所不同,但基本不会相差太多。

它先加载了你的vote[0],然后这个vote[0]所指向的DOM(也就是你说的DIV)却没有被加载并解析,浏览器这时候还不认识这个vote[0]是个什么东西。

所以,这个时候浏览器会报错这行代码,如果你使用浏览器的F12功能键打开调试器,应该可以看到报错信息。

如果你希望让这段代码加载时直接运行,要考虑执行顺序的问题,要么onload再执行,要么把它放到HTML后面去。

而为什么alert之后就好用了呢?因为alert执行的时候,在等待用户确认的这个过程中,程序是被阻断的,不会向下执行,但是页面的加载过程却不中止,这就相当于页面加载并解析的时间,被alert给留下来了,如果用户的手快,而网络速度很慢的话,同样也会报错,并不执行。

————
以上。追问

恩,加入onload后问题就解决了,还想问下我要连续执行3次怎么办,调用3次但只是成功1次,有没有什么函数可以达到alert阻断程序的这个效果,不要手动点击,

追答

这个为什么会调用三次只成功一次,与你那个click函数中的内容是有关系的,我不知道其中的内容,我没办法给具体的原因。

我觉得,甚至是有可能不管执行多少次,表现出来的结果都是一个模样,所以你感觉好像只执行了一次,其实程序的执行速度是十分快的,那是0.001眨眼的时间,你是感觉不出来的。

温馨提示:内容为网友见解,仅供参考
第1个回答  2015-09-11
js的alert()函数触发之后,alert()后面de代码会暂停执行,点击弹框的确认之后,会继续执行后续代码
相似回答