【发布时间】:2021-08-01 02:56:51
【问题描述】:
<div class="image-preview" id="imagePreview">
<img src="" class="image-preview__image">
</div>
<div class="image-preview" id="videoPreview">
<video controls autoplay muted class="video-preview__image" id="video" src=""></video>
</div>
<br>
<label for="inpFile"><img id="image_icon" src="http://localhost/mybook/images/images_icon.png"></label>
<input id="inpFile" type="file" name="file" style="display:none;" >
<input id="post_button" type="submit" value="Post" style="margin:5px;">
我想在提交前显示上传视频文件的预览。多亏了以下 JS,我已经成功地使用图像完成了此操作,但它不适用于视频文件...
const inpFile = document.getElementById("inpFile");
const previewContainer = document.getElementById("imagePreview");
const originalImage = document.getElementById("originalImage");
const previewImage = previewContainer.querySelector(".image-preview__image");
inpFile.addEventListener("change", function() {
const file = this.files[0];
if (file) {
const reader = new FileReader();
previewContainer.style.display = "block";
previewImage.style.display = "block";
originalImage.style.display = "none";
reader.addEventListener("load", function() {
previewImage.setAttribute("src", this.result);
});
reader.readAsDataURL(file);
}else{
previewImage.style.display = null;
previewImage.setAttribute("src","");
}
});
【问题讨论】:
-
"message": "Uncaught TypeError: Cannot read property 'querySelector' of null",该错误似乎是由const previewImage = previewContainer.querySelector(".image-preview__image");触发的,这意味着previewContainer为空。您的 HTML 中似乎没有带有imagePreviewid 的元素。
标签: javascript