如何使用js触发'contenteditable'元素进入编辑状态?

lfr*_*ree 5 html javascript

我想使用“contenteditable”属性实现元素就地编辑。是否可以通过鼠标事件模拟而不是用户单击进入编辑状态?

function triggerEvent(element, eventType) {
    let rect = element.getBoundingClientRect();
  console.log(rect);

    let event = new MouseEvent(eventType, {
    clientX: rect.left + 20,
    clientY: rect.top + 10,
    view: window,
    buttons: 1,
    bubbles: true,
  });
  element.dispatchEvent(event);
}

document.getElementById('btn').addEventListener('click', (event) => {
    let editArea = document.getElementById('edit-area');
  editArea.setAttribute('contenteditable', true);

  triggerEvent(editArea, 'mousedown');
});
Run Code Online (Sandbox Code Playgroud)

演示:https : //jsfiddle.net/lfree/vkeq9fza/1/

Kev*_*Bot 5

你只需要focusdiv:

let div = document.querySelector('div');

div.focus();
Run Code Online (Sandbox Code Playgroud)
<div contenteditable="true">Div Content</div>
Run Code Online (Sandbox Code Playgroud)