Javascript 在Firefox中强制将焦点设置回contenteditable文档
适用于除Firefox以外的所有浏览器Javascript 在Firefox中强制将焦点设置回contenteditable文档,javascript,jquery,firefox,setfocus,Javascript,Jquery,Firefox,Setfocus,适用于除Firefox以外的所有浏览器 function editorFocusLost(event) { // Trying to set focus back setTimeout(function() { $editorBody[0].focus(); }, 4); } // Listen for focus lost event $editorBody[0].addEventListener('DOMFocusOut', editorFocusLo
function editorFocusLost(event) {
// Trying to set focus back
setTimeout(function() {
$editorBody[0].focus();
}, 4);
}
// Listen for focus lost event
$editorBody[0].addEventListener('DOMFocusOut', editorFocusLost, false);
我还尝试了一些不同的事件,如“focuslost”、“blur”、“DOMFocusOut”,但在Firefox中不起作用。但我们可以通过变通办法解决模糊问题。然而,将焦点设置回$editrBody[0]的主要问题是,focus()在Firefox中也不会触发
DOMFocusOut事件在firefox中不起作用;您必须使用模糊事件 唯一的问题是最初的焦点,在firefox中焦点最初没有设置为contenteditable,这可能是由于JSFIDLE本身的问题。我在jsbin试过,效果很好
(函数($){
var$body=$('.editor');
$body[0]。焦点();
函数编辑器焦点丢失(事件){
setTimeout(函数(){
$body[0]。焦点();
}, 4);
}
$body[0]。addEventListener('blur',editorFocusLost,false);
})(jQuery)代码>
.container{
保证金:0自动;
宽度:100%;
填充:50px;
}
.编辑{
宽度:300px;
高度:100px;
背景色:#fff;
}
编辑