欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

self.attachevent is not a function的解决方法

程序员文章站 2022-06-20 09:51:04
注意原因: window对象的attachevent方法只在ie浏览器中有效,其它浏览器不支持这个方法,所以报错。 self.attachevent is not a...

注意原因:

window对象的attachevent方法只在ie浏览器中有效,其它浏览器不支持这个方法,所以报错。

self.attachevent is not a function其实就是以前的代码, 没有做chrome、firefox浏览器兼容导致。

self.attachevent("onblur",function(){dd.style.display="none"})

上面的代码在chrome浏览器肯定会报错的。

因为chrome浏览器绑定事件不支持attachevent而支持addeventlistener。

下面是临时解决方法:

if(!self.addeventlistener){
		self.attachevent("onblur",function(){ddd.style.display="none"})
	}

但是效果会丢失,这个不报错但效果也没有了。

ie:element.attachevent(”onclick”, func);。
ff:element.addeventlistener(”click”, func, true)。
通用:element.onclick=func。虽然都可以使用onclick事件,但是onclick和上面两种方法的效果是不一样 的,onclick只有执行一个过程,而attachevent和addeventlistener执行的是一个过程列表,也就是多个过程。例 如:element.attachevent(”onclick”, func1);element.attachevent(”onclick”, func2)这样func1和func2都会被执行。

建议大家参考这篇文章的方法解决: