Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Firefox中强制将焦点设置回contenteditable文档_Javascript_Jquery_Firefox_Setfocus - Fatal编程技术网

Javascript 在Firefox中强制将焦点设置回contenteditable文档

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

适用于除Firefox以外的所有浏览器

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;
}

编辑