需要IE6+的HTMLElement API:click()等价物



嗨,我正试图在按下回车键时触发点击事件,但我不确定ie6 的方法

也许这个:

if (document.attachEvent) {
document.attachEvent("keypress", function(e) { 
var keyCode = e.which || e.keyCode
if (keyCode === 13) document.getElementById("button1").click()
})
}

如果你真的需要在IE6上做这件事,那就去吧(确保这只在IE<9中运行(:

var input = document.getElementById('some_input'), // Presumably an input element
element = document.getElementById('some_element'); // The element to click
input.attachEvent('onkeydown', function (e) {
if (e.keyCode != 13) {return;} // Quit, no ENTER pressed
element.click();
// Prevents the default action of the event
e.cancelBubble = true;
e.returnValue = false;
return;
});

keydown需要被监听,因为keypress没有检测到ENTER,并且keyup是不可取消的。如果按下了元素ENTER,即input元素,则必须阻止默认操作以阻止提交表单。一些早期的IE版本在页面上提交了表单,即使输入在表单之外。如果要按ENTER键的元素不是输入元素,或者页面上没有任何表单,则不需要默认的阻止操作。

最新更新