Does HTML 'body' tag have an onblur event?

☆樱花仙子☆ 提交于 2019-12-23 12:25:14

问题


I tried to bind the onblur event to a <body> tag and it works in IE 6/8.

However, when I turn to w3schools, it turns out that the <body> tag doesn't have an onblur event.

Can anyone explain this?


回答1:


The HTML4 specification does not list the onblur attribute.

The HTML5 draft on the other hand does.




回答2:


body:onblur is part of the HTML5 spec, but not part of the HTML4 spec.

If you want to support HTML4 browsers, why not use window:onblur? For most cases, you'll have the same functionality.




回答3:


I would never rely on the source you mentioned. The problem is, MSIE fires the blur event for almost every element, <body included. Wheres most other implementations do the exact oposite.

It might help if you explicitly the a tabIndex for the body element, for instance:

document.body.tabIndex = 1;
document.body.onblur = function() {
    alert('body blur');
};

That works for me on FF5. That said, I'm not sure how many versions from FF and how much implementations support that 'tricky' workaround.

The next logical question is, why would you want to fire the body a blur event ? The only reasonable thing I can think of, is that you want to know when someone leaves your page ? If that is the case, I would recommend to watch the window itself instead of the body.

window.onblur = function() {
    alert('window blur');
}


来源:https://stackoverflow.com/questions/6939047/does-html-body-tag-have-an-onblur-event

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!