を通常の<button>
でシミュレートしようとしていますが、ほとんどの場合うまく動作しますが、change
イベントが発生しないこともあります。ここで入力[タイプ=ファイル]変更イベントがChromeで時折失われる
var count = 0;
button.addEventListener('click', function (e) {
const input = document.createElement('input');
input.setAttribute('type', 'file');
input.onchange = function (e) {
const file = e.target.files && e.target.files[0];
if (file) {
$('span').text(`file size: ${file.size}, action count: ${++ count}`);
}
};
document.body.appendChild(input);
input.click();
document.body.removeChild(input);
}, false)
問題を再現する手順は、次のとおりです
- ボタンをクリックし、ファイルを選択します。
- 行動回数増加かどうかを確認します。
通常上記
しかし、時々、ファイルを選択した後、何も起こりません。実際、これはかなり頻繁に起こりますが、不規則です。たとえば、上記の手順を7回繰り返して、イベントが失われました。時々、それを数十回繰り返す必要があります。ファイルを頻繁に選択するユーザーにとっては、明らかな問題になります。
これはChromeのみに起こるようです、誰もが同じ問題を満たすために起こると、それのためのソリューションを取得する場合、私は思ったんだけど、クローム48-51上で再現?ありがとう。入力要素を再利用
が
_ "時には変更イベントが発生しない" _クロム51で再現できない – guest271314