html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
window.οnlοad=function(){
ifr = document.getElementById('ifr1');
doc = ifr.contentWindow.document;
//alert(doc);
doc.designMode = 'on';
doc.open();
doc.write('
');doc.close();
var btn1 = document.getElementById('btn1');
btn1.onclick = function(){
console.log('click');
doc.body.focus(); //兼容 chrome IE
//这个并不会触发body.focus而是会触发ifr.contentDocument.defaultView.onfocus
ifr.contentDocument.defaultView.focus();//兼容FF chrome
//如果有了这个上面的就不起作用了。
};
doc.body.onfocus = function(){ //直接使用会报错,ie下只有body结束所以
//doc.write('
');console.log('doc.body.onfocus');
}
doc.body.onblur = function(){
console.log('doc.body.onblur');
}
//
ifr.contentDocument.defaultView.onfocus = function(){
console.log('contentDocument.defaultView.onfocus');
}
ifr.contentDocument.defaultView.onblur = function(){
console.log('contentDocument.defaultView.onblur');
}
}
/*
* 总结如下
* 获得焦点
if(ff){
ifr.contentDocument.defaultView.focus();
}else{
doc.body.focus();
}
* 总结如下
* 焦点事件
if(ie){
doc.body.onfocus = function(){
console.log('doc.body.onfocus');
}
}else{
ifr.contentDocument.defaultView.onfocus = function(){
console.log('contentDocument.defaultView.onfocus');
}
}
*/
如果Jquery
$(ifr.contentDocument.defaultView).focus();
会触发两个
doc.body.onfocus 和 contentDocument.defaultView.onfocus;
慎用。。。。。