Enter我正在尝试在按下后格式化 contenteditable div 中的文本。问题是没有从任何键注册任何键,因此这是不可能的。其他事件(例如“单击”)确实有效,如果我将元素更改为“文档”(document.addEventListener()...),这也会使其正常工作,但这是一个极端的解决方案。有一个简单的解决方案吗?
window.addEventListener('load', function() {
var editbox = document.getElementById("editable")
editbox.addEventListener('keyup', function(e) {
alert("this should appear");
});
});Run Code Online (Sandbox Code Playgroud)
<main contenteditable="true">
<div class="box" id="editable">
text
</div>
</main>Run Code Online (Sandbox Code Playgroud)
使用keyCodeevent.key检测特定键 'Enter' = ENTER。使用event.target属性来准确检测在哪个元素上键入。div#editable位于mainwhich is内contenteditable,因此无法通过正常方式访问,因此main改为定位 the。
测试演示:
document.addEventListener('keyup', function(e) {
if (e.key === 'Enter' && e.target.tagName === 'MAIN') {
console.log('ENTER');
}
});Run Code Online (Sandbox Code Playgroud)
#editable {
color: red
}Run Code Online (Sandbox Code Playgroud)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>title</title>
</head>
<body>
<main contenteditable="true">
<div class="box" id="editable">
text
</div>
</main>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8727 次 |
| 最近记录: |