在将文本区域定义为t时,我一直收到错误消息,但是t的值为null,我不知道为什么。我正在搜索的ID是正确的,但未返回任何内容。我试图让用户按下选项卡按钮时的文本区域跳出5个空格,而不是将焦点更改为另一个元素的默认操作。
let t = document.getElementById('txtEditor');
function addTextAreaListener() {
t.addEventListener("keydown", taKeyPress);
}
function taKeyPress(e) {
e.preventDefault();
if (e.keyCode == "9") {
t.value += " ";
}
}
addTextAreaListener();
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<link rel="stylesheet" href="mystyles.css">
<script type="text/javascript" src="index.js"></script>
<meta charset="utf-8">
<title>Outline editor</title>
<h1>Outline Editor</h1>
</head>
<body>
<main class="buttons">
<button type="button" name="btnSave">Save</button>
<button type="button" name="btnTF">Text formatting</button>
<button type="button" name="btnLoad">Load</button>
</main>
<main>
<textarea id="txtEditor" rows="30" cols="80"></textarea>
</main>
</body>
</html>
答案 0 :(得分:4)
在执行该脚本时,仍不会创建id ='txtEditor'的元素。您最好使用“ onload”事件:
window.onload= function (){document.getElementById("txtEditor")...
或将脚本放入页面底部(波纹管主体)。