在原生 js 中,您可以通过 onClick、onKeyPress 等元素属性附加事件。
不要忘记,事件处理函数中的事件参数;)
在不同的浏览器中,可以通过事件的不同属性读取按键的代码。
这是一个例子:
<script type="text/javascript">
document.getElementsByTagName("body")[0].onkeypress=function(e){
var s = String.fromCharCode(e.which | evt.witch );
switch(s){
case "f":
alert("key is 'f'");
break;
....
}
};
</script>
或者您可以使用addEventListener 方法,如下所示:
<script type="text/javascript">
document.getElementsByTagName("body")[0].addEventListener('keypress',function(e){
var s = String.fromCharCode(e.which | evt.witch );
switch(s){
case "f":
alert("key is 'f'");
break;
....
}
});
</script>
您应该在文档加载后运行这些脚本。您可以像这样订阅domready 事件:
<script type="text/javascript">
document.addEventListener( "DOMContentLoaded", function(){
//your code here (one of the above)
}, false );
</script>
这里讨论了最后一部分:javascript domready?。不幸的是,您可以通过不同的方式订阅 domready 事件,具体取决于客户端浏览器。
一个建议(题外话):
当你使用原生 javascript 时会出现一堆问题,因为浏览器的不兼容问题,在jQuery 中已经解决了。如果你想使用jQuery,但你不能访问html代码,并且你想加载jQuery你可以将jQuery从CDN url包含到你的站点,也可以使用javascript,像这样:
<script>
(function() {
var jQ = document.createElement('script'); jQ.type = 'text/javascript';
jQ.async = true;
jQ.src = '//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(jQ, s);
})();
</script>
正如谷歌在 analitycs 代码中所做的那样;)