在项目中使用了一个js实现的vForm表单验证程序(作者:雷晓宝,e-mail:lxbzmy@163.com)
项目为典型SSH,使用了Struts Menu,页面加载中,原有的body onload事件中已有js函数,
在验证的表单页面中,使用window.οnlοad=function(){} ; 页面报“尚未实现”的错误,google
一番,未解决问题。后来想到可能是将原有onload事件中js函数覆盖的原因,且有人说是IE onload
不支持带参数的函数,于是改用如下方式:
window.οnlοad=function(){
function1;(原js函数)
function2;
} ;
结果不再报“尚未实现”的错误,在函数中加了alert(),发现根本就没有加载这些函数,
后来想到是否可以向window.onload追加js函数,于是如题google了一下,使用如下方法:
<script>
if(window.attachEvent)
window.attachEvent("onload",function() {alert("add method");});
else
window.addEventListener("load",function() {alert("add method");},true);
</script>
运行,js中alert弹出消息,问题解决。
============相关资料================
attachEvent 将指定函数绑定到事件,以便每当该事件在对象上触发时都调用该函数。
Internet Explorer 从 5.0 开始提供了一个 attachEvent 方法,使用这个方法,就可以给一个事件指派多个处理过程了。attachEvent 对于目前的 Opera 也适用。但是 Mozilla/Firefox 并不支持这个方法。但是它支持另一个 addEventListener 方法,这个方法跟 attachEvent 差不多,也是用来给一个事件指派多个处理过程的。但是它们指派的事件有些区别,在 attachEvent 方法中,事件是以 “on” 开头的,而在 addEventListener 中,事件没有开头的 “on”,另外 addEventListener 还有第三个参数,一般这个参数指定为 false 就可以了。
最后感谢vForm表单验证程序的作者-雷晓宝