在具有拼写检查功能的可编辑<div>中复制点击操作

6

Chrome的本地拼写检查无法在contenteditable <div>上工作,除非用户单击进入<div>,这是有道理的。但如果我动态添加了一个contenteditable <div>,有没有办法模拟用户单击进入<div>,以使拼写检查起作用? 我尝试使用jQuery:

 $('#div-id').click();

并且

 $('#div-id').trigger('click');

但这些方法都没有起作用。有什么帮助吗?对我来说,jQuery或JavaScript可行。


1
你是指 .focus() 吗? - user6820627
老兄,你真是太棒了。这就是为什么在这个世界上有聪明人,来帮助我们这些初学者的原因。 - Jack Vawdrey
1个回答

2

正如一条评论所提到的,通过编程方式将焦点带到元素上可以启用拼写检查。但由于焦点现在转移到另一个元素上可能是不可取的。因此,这里提供了一个完整的解决方案(不使用jQuery,但仍然可以与其一起使用):

var oldFocus = document.activeElement;

div.focus();

if (oldFocus) {
    oldFocus.focus();
} else {
    div.blur();
}

这个操作在将焦点放到div元素之前,会保存之前的焦点元素以便启用拼写检查。然后,焦点会返回到旧的元素(如果有一个已经获得了焦点的元素),否则不会有任何元素获得焦点。


1
@JackVawdrey 如果这个答案解决了你的问题,请考虑将其标记为已接受的答案,以便问题被标记为已解决。 - rvighne

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接