javascript - preventDefault 输入键事件而不阻止滚动
问题描述
我想阻止除滚动之外的默认操作。当我添加e.preventDefault
事件keyDown
(Enter键)时,它还会阻止浏览器滚动。我想阻止除了滚动之外的输入按键操作。有没有办法区分输入键事件和滚动?或者我们可以部分阻止滚动应该起作用的默认操作,而其他操作被阻止。任何帮助将不胜感激。
document.getElementById('textBox').addEventListener("keydown", function(event) {
// Number 13 is the "Enter" key on the keyboard
if (event.keyCode === 13) {
// Cancel the default action, if needed
event.preventDefault();
}
});
我preventDefault
在输入动作中添加了。出于某种原因,我必须将此行添加到代码中,但这也阻止了我的页面滚动。我想保留preventDefault
,但我的页面应该滚动。有什么办法吗?
解决方案
每当触发事件时,只需在 textarea 中添加一个新行。
document.getElementById('textBox').addEventListener("keydown", function(event) {
// Number 13 is the "Enter" key on the keyboard
if (event.keyCode === 13) {
var cursor= this.selectionEnd;
this.value = this.value.substring(0, cursor) + '\n' +
this.value.substring(cursor);
this.selectionEnd = cursor+1;
event.preventDefault();
}
});
<textarea style="height:200px;width:300px" id="textBox"></textarea>
注意:contenteditable
我注意到在这种情况下使用的是 OP 。这是 OP 的 JSFiddle 的一个分支。我对使不同的元素可编辑进行了一些更改,因为这似乎更合适。
推荐阅读
- java - 当用户从微调器中单击一个项目时,它应该显示另一个项目数据将从 JSON Web 服务获取
- flutter - 可以在 Flutter 中为 IOS 和 Android 制作非恶意键盘记录器吗?
- android - 在第二个阵列上获得位置时遇到问题
- python - 如何计算 arUco 标记的偏航角?
- xpath - Google 表格 importxml 奇怪的导入 - 无法获取元素的正确路径
- javascript - 如何发出一个 DM 某人但它可以忽略特定用户的命令?
- python - Python - 将带有特殊字符的字符串转换为字节
- apple-push-notifications - iOS 13 是否有获取设备通知令牌的新方法?
- python-3.x - Python交换混乱
- css - blueprintjs css 类未在 React 中应用