javascript:未捕获类型错误:无法读取 null 的属性 'addEventListener'

标签 javascript jquery html

为什么我会收到此错误?这应该可行,我想做的是当有人选择上传图像文件上的表单时。谢谢

我不断收到的错误是

    <html>
<body>
<script type="text/javascript">
function EL(id) { return document.getElementById(id); } // Get el by ID helper function

function readFile() {
  if (this.files && this.files[0]) {
    var FR= new FileReader();
    FR.onload = function(e) {
      EL("img").src       = e.target.result;
      EL("b64").innerHTML = e.target.result;
    };       
    FR.readAsDataURL( this.files[0] );
  }
}

EL("inp").addEventListener("change", readFile, false);
</script>
<input id="inp" type='file'>
<p id="b64"></p>
<img id="img">
</body>
</html>

但效果不佳

最佳答案

将 JavaScript 放在正文的下方。 它会抛出错误,因为当您的 DOM 尚未准备好时,您的 JavaScript 首先会起作用。

在正文末尾加载所有脚本是一个很好的做法

<html>
<body>
<input id="inp" type='file'>
<p id="b64"></p>
<img id="img">

<script type="text/javascript">
function EL(id) { return document.getElementById(id); } // Get el by ID helper function

function readFile() {
  if (this.files && this.files[0]) {
    var FR= new FileReader();
    FR.onload = function(e) {
      EL("img").src       = e.target.result;
      EL("b64").innerHTML = e.target.result;
    };       
    FR.readAsDataURL( this.files[0] );
  }
}

EL("inp").addEventListener("change", readFile, false);
</script>

</body>
</html>

关于javascript:未捕获类型错误:无法读取 null 的属性 'addEventListener',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38769679/

相关文章:

javascript - 节点数据更新d3.js v4力图

javascript - Fullcalendar - 在数据库中保存事件

javascript - 传单,否则 if = 不显示标记

javascript - 用 x% 宽的颜色填充表格单元格

javascript - 如何将占位符属性添加到 CKEditor 的实例?

javascript - 从父窗口获取 iframe 中文本框的值

javascript - 在移动浏览器上点击按钮全屏播放 youtube 视频

javascript - 如何在更新卡片的弹出窗口中获取 2 个 div 值。

javascript - 如何从数据表的列中删除默认的点击事件?

html - IE9 向显示 :inline-block and overflow-x:hidden; 的行添加额外高度