具体的にはinput[type=date]
、イベントが発生するかどうかをテストしますinput
か?
質問する
234 次
2 に答える
3
あなたはこれを行うことができます:
var element = document.getElementById('myElement');
var supported = 'oninput' in element;
于 2012-11-20T17:14:29.720 に答える
3
このウェブサイトを見て、試してみることをお勧めします
テスト B: 入力に対して setAttribute を使用して oninput を設定し、node.oninput が関数であるかどうかを確認します テスト C: w3 イベント API を使用して入力を作成し、キープレスを偽造して oninput が起動するかどうかを確認します
テスト C の JavaScript は次のとおりです。
function testC(){
var input = document.createElement('input'),
e = document.createEvent("KeyboardEvent");
// set type for DATE
input.setAttribute('type', 'date');
e.initKeyEvent("keypress", true, true, window, false, false, false, false, 0, "e".charCodeAt(0));
// use initKeyboardEvent for webkit
document.body.appendChild(input);
input.addEventListener("input", function(e) { alert('C Successful'); e.preventDefault(); e.stopPropagation(); }, false);
input.focus();
input.dispatchEvent(e);
document.body.removeChild(input);
}
編集: テスト コードはテスト ページからコピーされ、いくつかの小さな変更 (var の位置、type=date、alert) のみが含まれます。今すぐクロムで(に変更initKeyEvent
した後)実行しましたが、何も起こりませinitKeyboardEvent
んが、行をコメントアウトしremoveChild
て手動で実行すると、成功メッセージが表示されます。シミュレートされたイベントがそれを呼び出さなかった理由がわからないため、コードに適用する前にこれを調べる必要があります。
于 2012-11-20T17:14:47.867 に答える