我正在为我和我的朋友制作一个简单的编码器/解码器,以便彼此在代码中交谈,或者至少应该很简单。当我尝试引用任何元素时,我一直收到错误消息“无法获取未定义或空引用的属性'值'”。我觉得我在做一些很傻的事情,很容易修复,但是看不到。
我已经看过几个相关的问题,并且正在尝试一堆建议的东西,但是似乎没有任何效果。顺便说一句,如果有帮助,我正在使用Microsoft Edge。
var inMsg = document.getElementById("input")
var outMsg = document.getElementById("output")
document.addEventListener('keypress', (event) => {
if (event.key == 'Enter') {
try {
event.preventDefault()
} catch (e) {
console.log(e)
}
try {
console.log(inMsg.value)
} catch (e) {
console.log(e)
}
}
})
<html>
<head>
<script src="./main.js" type="text/javascript"></script>
<style>
</style>
</head>
<body>
<div>
<h2>Paste Coded Message Here -></h2>
<textarea id="input" value=""></textarea>
<textarea id="output"></textarea>
</div>
</body>
</html>
通常,我可以只记录该值没有问题,但是当我用console.log记录时,它表示该元素为null。
答案 0 :(得分:0)
尝试将defer
添加到脚本标签中,如下所示:
<script src="./main.js" type="text/javascript" defer></script>
我相信在脚本执行时html解析器尚未到达您的inMsg
元素,因此该元素的值为undefined
。
让我知道是否可行!
答案 1 :(得分:0)
将前两行移到添加事件侦听器函数中。可能会在dom准备就绪且isMag变量填充为null之前调用此函数。