根据MDN,我们绝对不应该使用.keyCode属性.它已被弃用:
https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode
在W3学校,这个事实被淡化了,并且只有一个附注说明仅.keyCode
提供兼容性,并且最新版本的DOM事件规范建议使用该.key
属性.
问题是.key
浏览器不支持,那么我们应该使用什么?有什么我想念的吗?
(不使用 JQuery)
为了正确地提出这个问题,我做了一个简单的例子,一个网站包含三个页面A、B和C。每个页面都链接到一个JavaScript文件。JavaScript文件链接在body标签的底部。以下是其中一个 html 页面的示例:
<html>
<head>
<title>Page A</title>
<link rel="stylesheet"
type="text/css"
href="temp.css">
</link>
</head>
<body>
<h1 id = "headingA">Page A</h1>
<button id="enterA">Enter</button>
<script src = temp.js>
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
除了“A”明显替换“B”和“C”之外,这三个页面看起来都很相似。
//this button is on page A
var btnA = document.getElementById("enterA");
btnA.onclick = function () {
"use strict";
window.console.log("Button A Pressed");
window.open("/pageB.html", "_self");
};
//this button is on page B
var btnB = document.getElementById("enterB");
btnB.onclick = function () {
"use strict";
window.console.log("Button B Pressed");
window.open("/pageC.html", "_self");
};
//this button is …
Run Code Online (Sandbox Code Playgroud)