contenteditable
是一个 HTML 属性,它使得元素的内容可以被用户编辑。当一个 div
元素被设置为 contenteditable="true"
时,用户可以直接在这个 div
中输入文本、编辑内容。
contenteditable
可以应用于任何 HTML 元素,但最常见的是应用于 div
和 p
元素。
contenteditable div
上时,点击事件不生效。当 contenteditable
元素获得焦点时,浏览器会优先处理编辑相关的操作,导致点击事件可能不会被触发。
可以通过 JavaScript 手动设置焦点和光标位置,并确保点击事件能够被正确触发。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ContentEditable Div Focus</title>
<style>
.editable-div {
border: 1px solid #ccc;
padding: 10px;
width: 300px;
min-height: 100px;
}
</style>
</head>
<body>
<div class="editable-div" contenteditable="true" id="editableDiv">点击这里编辑内容</div>
<button onclick="setFocus()">设置焦点</button>
<script>
function setFocus() {
const editableDiv = document.getElementById('editableDiv');
editableDiv.focus();
// 确保点击事件能够被触发
editableDiv.addEventListener('click', () => {
console.log('Div clicked!');
});
}
</script>
</body>
</html>
通过上述代码,你可以确保在点击 contenteditable div
时,焦点和光标能够正确设置,并且点击事件能够被触发。
领取专属 10元无门槛券
手把手带您无忧上云