而且并没有进行(window.onload())加载。
如果你把你这些代码包含在onload中,就好了。
原理是:
首先网页接你所编写的代码顺序依次加载,当然有时候也会由于网络原因导致加载成功的顺序有所不同,但基本不会相差太多。
它先加载了你的vote[0],然后这个vote[0]所指向的DOM(也就是你说的DIV)却没有被加载并解析,浏览器这时候还不认识这个vote[0]是个什么东西。
所以,这个时候浏览器会报错这行代码,如果你使用浏览器的F12功能键打开调试器,应该可以看到报错信息。
如果你希望让这段代码加载时直接运行,要考虑执行顺序的问题,要么onload再执行,要么把它放到HTML后面去。
而为什么alert之后就好用了呢?因为alert执行的时候,在等待用户确认的这个过程中,程序是被阻断的,不会向下执行,但是页面的加载过程却不中止,这就相当于页面加载并解析的时间,被alert给留下来了,如果用户的手快,而网络速度很慢的话,同样也会报错,并不执行。
————
以上。
先查看错误提示,按f12键,打开控制台查看js的错误提示。还没解决,再做个排除法吧,把函数a,b,c换成简单的alert,重新运行一下,如果都能运行,那么就是函数c本身的问题。如果about页面还是不能运行,那么要么是函数b有问题阻断了进程,要么就是about页面的问题,查看它里面是不是还有其他的onload函数等等这样可以么?