Javascript 禁止在Android/chrome mobile[web]上输入文本键盘
我有一个文本区和按键监听Javascript 禁止在Android/chrome mobile[web]上输入文本键盘,javascript,android,html,Javascript,Android,Html,我有一个文本区和按键监听 <textarea onKeyDown={handleKeyDown}></textarea> 当我在windows PC上打字时,Chrome版本90.0.4430.212(官方版本)(64位)一切都很完美:文本区域中没有显示文本 当我在mac电脑上打字时,Chrome90一切都很完美 但当我拿起我的安卓手机(三星,安卓11),打开手机Chrome(90.0.4430.210)并开始打字时,文本区域中出现了文本。最糟糕的是,我发现的这个bug
<textarea onKeyDown={handleKeyDown}></textarea>
当我在windows PC上打字时,Chrome版本90.0.4430.212(官方版本)(64位)一切都很完美:文本区域中没有显示文本
当我在mac电脑上打字时,Chrome90一切都很完美
但当我拿起我的安卓手机(三星,安卓11),打开手机Chrome(90.0.4430.210)并开始打字时,文本区域中出现了文本。最糟糕的是,我发现的这个bug只提到了这个,当机器人把我的问题标记为重复时,它会被引用。没有答案:maxlength属性不再工作
以下是我试图阻止mobile chrome输入的内容列表:
- Maxlength=0(完全不起作用)
- 只读(=禁用,我需要焦点和选择)
- 阻塞onKeyUp、onKeyPress、onPaste、onCut、onInput
我的问题是如何防止输入,可能有黑客或诡计?请不要将我发送到android报告论坛,在那里可能会讨论此错误或其他问题…添加eventlisteners时,我会首先检查事件是否正常工作。必须有一种方法来处理Android上的关键事件:
<textarea id="mytextarea"></textarea>
<textarea id="mytextarea"></textarea>
如果这不起作用您要求的是一个黑客或诡计:尝试聚焦和模糊事件,然后您可以在间隔上运行一个清除文本区域的函数。请注意,这种拦截技巧与良好的用户体验惯例背道而驰,因此肯定应该被视为一种黑客/技巧;-)
阻止键盘,但仍然允许在我的手机上进行选择。@Keith,你能告诉我你的手机和操作系统是什么吗?我正在Android上使用Chrome,并在这里测试了只读->版本。90.0.4430.210无论如何,我需要显示键盘,所以这里不能选择readOnly属性。现在,我在真实的文本区域上方放置了一个假文本区域。它隐藏了选择光标,但至少可以正常工作。
let mytextarea = document.getElementById('mytextarea');
mytextarea.addEventListener('keydown', (event) => {
console.log(event.code);
});
<textarea id="mytextarea"></textarea>
let int1;
let mytextarea = document.getElementById('mytextarea');
mytextarea.addEventListener('focus', () => {
clearInterval(int1);
int1 = setInterval(() => {
mytextarea.value = '';
}, 10)
});
mytextarea.addEventListener('blur', () => {
clearInterval(int1);
});