表onkeyup事件未在Firefox和Chrome中触发

时间:2011-09-12 20:34:52

标签: html events html-table

以下代码适用于IE,但不适用于其他浏览器。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script type="text/javascript">
        function OnLoad() {
            var tbl = document.getElementById("tbl");
            tbl.addEventListener("keyup", OnKeyUp);
            tbl.focus();
        }

        function OnKeyUp(event) {
            alert(event.keyCode);
        }
    </script>
</head>
<body onload="OnLoad()">
    <table id="tbl">
        <tr>
            <td>
                1
            </td>
            <td>
                2
            </td>
            <td>
                3
            </td>
        </tr>
        <tr>
            <td>
                4
            </td>
            <td>
                5
            </td>
            <td>
                6
            </td>
        </tr>
    </table>
</body>
</html>

1 个答案:

答案 0 :(得分:3)

问题是table元素无法在某些浏览器中获得焦点。如果向表中添加tabindex属性,则代码应该可以正常工作,因为这样可以使表格获得焦点:

<table id="tbl" tabindex="1">
    <!--Rest of your code-->
</table>

这是一个有效的example