1楼已经说明了为什么事null 因为JS 代码 在 Html 代码前面,所以Html 代码没有加载完成就 来一个
getElementById 肯定为 null 对象。
具体的解决方法,Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "");
用你的JS代替上面的JS就可以了,后台向客服端(前台)调用一个JS方法
根据你写的代码,如果是在IE里面浏览,应该每次都可以获取到DIV,不会为Null的,因为你加了defer=true
如果是在Firefox里面浏览,不管你怎么点按钮,肯定每次都会提示是null的
defer=true这个属性并不可靠,并不是每个浏览器都支持
楼主你应该把按照楼上的建议把
Response.Write(str);改成
this.Page.ClientScript.RegisterStartupScript(this.GetType(), "message", str);
至于楼主说的第一次点是null, 第二次点就是object了,我觉得理论上应该不会出现这种情况,楼主你是不是看错了?
js代码不能用Response.Write(str);输出因为代码是从上到下执行的而这段输出是把script代码输出在最顶上所以会报document.getElementById(...)为空或不是对象
这个比较简单啦,看看相关的书籍,基本原则上的错误。自己细心找下