在input输入框中有个事件定义<\input type="text" oncompositionstart="test()">,
test方法已有定义,中文输入的时候不能触发,但是用addEventListener添加compositionstart事件就可以被触发,请问为什么一定要在addEventListener中添加才能触发呢?
参考GPT和自己的思路:
首先,需要了解一下compositionstart事件是什么。compositionstart事件是在用户开始输入非拉丁字符时触发的事件,例如中文、日语、韩语等。在用户输入这些字符时,浏览器会设定一个临时的输入状态,这个状态可以用来处理这些字符的输入。当用户开始编辑这些字符时,就会触发“compositionstart”事件。这个事件的目的是为了让开发者知道用户正在输入非拉丁字符,从而能够处理这些输入。
回到你的问题,为什么在input标签中使用oncompositionstart事件无法触发呢?这是因为有些浏览器不支持这个事件,而在使用addEventListener添加事件时,浏览器就可以正确地识别和触发这个事件。
所以,如果你希望在各种浏览器中都能够正确地触发compositionstart事件,建议使用addEventListener添加事件。