适用于除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);
我还尝试过一些不同的事件,例如“焦点失效”,“模糊”,“DOMFocusOut”等,但它在Firefox中不起作用。但我们可以通过变通方法解决问题。然而,设置焦点的主要问题是$ editrBody [0] .focus()也没有在Firefox中触发
答案 0 :(得分:1)
DOMFocusOut事件在firefox中不起作用;你必须使用模糊事件。
唯一的问题是最初关注,在firefox中,焦点最初并未设置为满足,这可能是由于jsfiddle本身的问题。我在jsbin尝试过并且工作正常。
(function($) {
var $body = $('.editor');
$body[0].focus();
function editorFocusLost(event) {
setTimeout(function() {
$body[0].focus();
}, 4);
}
$body[0].addEventListener('blur', editorFocusLost, false);
})(jQuery);
.container {
margin: 0 auto;
width: 100%;
padding: 50px;
}
.editor {
width: 300px;
height: 100px;
background-color: #fff;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div class="container">
<label for="">Editor</label>
<div class="editor" contenteditable="true"></div>
<input>
</div>