javascript - 尝试使用 JavaScript 设置视频的 src 属性,得到 TypeError: videofile is null
问题描述
我有一个视频和一些 JavaScript 代码。代码说
var videoIDRAW = getUrlVars()["watch"];
var videoID = videoIDRAW.toString();
var videoIDFILE = videoID.concat(".mp4");
var videofile = document.getElementById("vid");
videofile.setAttribute("src", videofile)
视频文件是
<video width="912" height="513" controls >
<source id="vid" src="" type="video/mp4">
</video>
为什么我会收到 TypeError:videofile 为空?
编辑:修改videofile.setAttribute("src", videofile.toString())
,同样的错误
解决方案
toString()
不是一个神奇的工具。无论如何我认为它应该被默认调用。
正如 Aaros 指出的那样,问题在于您的算法试图做什么。您正在尝试将 DOM 元素设置为其自身属性之一的值。视频的 src 属性需要是视频的 URL(或 blob,但这更复杂)。
你不是这个意思吗?
videofile.setAttribute("src", videoIDFILE); // Or videofile.src = videoIDFILE
编辑:不要忘记在正文之后执行脚本。通过将script
标签移动到正文的底部(但仍在内部),或者您可以使用您可以在那里找到的侦听器:当页面完全加载时如何执行函数?
推荐阅读
- javascript - 为什么我的侧边导航菜单不会被这个 jquery 幻灯片效果隐藏?
- python - 如何加密字典数据?
- java - JMS 队列是 Java Util 队列的实现吗?使用 Java Util Queue 实现的 Java 包中有哪些类?
- ubuntu - Ubuntu 14.04.5 LTS:监视警报 -- 连接失败 sshd
- javascript - JavaScript 在添加时崩溃
- excel - 为不同的 Excel 工作簿执行相同的代码时发生运行时错误 1004
- postgresql - postgres 中排除约束的要点
- sql-server - 在 SQL Server 的一个过程中使用 UNION ALL 从不同数据库中的两个不同函数获取记录
- odoo - 是否存在在odoo中不同版本之间迁移数据库的方法
- aws-lambda - 长时间运行的 lambda 等待 Airflow 中的响应超时