mum*_*bot 5 javascript events dom javascript-events onload
有没有一种方法可以检测HTML元素本身可使用的事件处理程序?
例如:
isAvailable(img.onload) === true; // All browsers
isAvailable(script.onload) === true; // Non-IE only (Webkit, Firefox, Opera)
isAvailable(link.onload) === true; // IE (and I think Opera) only
Run Code Online (Sandbox Code Playgroud)
理想情况下,我想在脚本中进行功能检测,如果元素可以使用onload进行使用,否则进行回退。当前,我不得不做浏览器派生(基于IE),这很烦人,因为IE可能开始支持script.onload,而Webkit / Firefox可能开始支持link.onload。
不幸的是,分配element.onload使得事件不再“未定义”,无论它是否最终会触发。
谢谢!
(编辑见下文,这不起作用。)您可以检查元素是否具有属性onload:
var img = document.createElement('img');
alert("img onload? " + ('onload' in img));
var script = document.createElement('script');
alert("script onload? " + ('onload' in script));
Run Code Online (Sandbox Code Playgroud)
在 IE7 上,我true得到img和false。script
编辑这不适用于 Firefox。留下这个只是为了让其他人不要走同样的路。