我正在尝试使用变量(基于与文档URL一起传递的参数)来使用HTML5视频标记播放视频。
我有一个HTML5页面列出了一堆程序。我为每个位于原始HTML页面级别下的目录中的过程创建了.mp4视频。这些都是为了在CD或硬盘上运行;没有使用互联网或任何类型的服务器。
目前我使用<a>
标签的href参数直接打开视频。这有效,但我想知道打开第二个嵌入了视频的HTML5页面是否会更好,因为它现在是HTML5原生的。
我想我会使用单个HTML页面播放视频,其中包含根据用户选择从第一个HTML页面发送的视频的名称:HTML第1页 - 用户点击过程 - 打开第2个html页面,其中包含URL末尾的参数。在第二个HTML页面中,解析URL以获取视频名称,将此变量用作视频标记中的“src”:
<video controls >
<source src=v+".mp4" >
Sorry, your browser doesn't support embedded videos.
</video>
但这不起作用。它似乎不理解变量。我试过用几种方法构建变量。
相反,我的解决方案是为每个特定的.mp4文件创建一个HTML页面,并在每个单独的HTML页面中对视频文件名进行硬编码。必须有一个更简单的方法。你有什么建议吗?
我只掌握HTML / CSS / JavaScript的基本知识。
你需要使用Javascript来(a)从URL中找到变量,并(b)在显示时将其写入文档。
下面的示例包含一些获取参数的代码,然后使用该函数获取名为v
的参数,如果存在,则使用该函数编写<video>
标记:
<html>
<body>
<script>
// split the querystring parameters on the URL and find the requested one
function getParam(parameterName) {
var result = null, tmp = [];
var items = location.search.substr(1).split("&");
for (var index = 0; index < items.length; index++) {
tmp = items[index].split("=");
if (tmp[0] === parameterName) result = decodeURIComponent(tmp[1]);
}
return result;
}
v = getParam("v")
if (v===null) {
document.write("<p>You need to add a ?v={filename} to the url")
} else {
document.write("<video controls>")
document.write("<source src=\""+v+".mp4\" >")
document.write("Sorry, your browser doesn't support embedded videos.")
document.write("</video>")
}
</script>
</body>
</html>