gpt4 book ai didi

javascript - 当没有上传视频时,html5 video 标签会显示一个空的视频框。我怎样才能隐藏这个空盒子?

转载 作者:行者123 更新时间:2023-12-02 21:38:49 27 4
gpt4 key购买 nike

这个空视频盒既难看又丑陋。我希望仅在上传视频时才显示视频框。

下面是一个示例代码,其中 html5 视频标签显示一个空视频框:

<!DOCTYPE html>
<html>
<body>

<video preload="auto" width="600" height="400" controls>
<source src="" type="video/mp4">
Your browser doesn\'t support HTML 5.
</video>

</body>
</html>

编辑:

我想澄清一下,src 属性中有一个来自 php 的变量,即 src="'.$row["image_name"].'"我的程序是一个实时评论系统。此外,如果没有从 php mysql 上传视频,则会显示一个空视频框,当我发表评论时,它不会显示在屏幕上。我对 <img> 没有同样的两个问题标签。我只有 <video> 有这两个问题标签。

这里我使用三个 JavaScript 变量创建了一个测试用例。有三个视频,三个变量,位于三个 src 属性内。 (1) 第一个变量具有正确的路径并显示视频。 (2) 在第二个变量中,我从 url 中删除了一个字母“b”,使 url 不正确。它在屏幕上显示一个空的视频框。 (3) 我将第三个变量留空。这是唯一有效的方法,即它不会显示空的视频框。

对于第二个变量,JavaScript“未定义”属性无法解决问题。

这里是 JSBin 的测试用例链接:https://jsbin.com/bolinut/edit?html,js,output

这是测试用例代码:

html

<!DOCTYPE html>
<html>
<body>

<video preload="auto" width="600" height="400" controls>
<source src="vid1" type="video/mp4" id="myVideo1">
Your browser doesn\'t support HTML 5.
</video>

<video preload="auto" width="600" height="400" controls>
<source src="vid2" type="video/mp4" id="myVideo2">
Your browser doesn\'t support HTML 5.
</video>

<video preload="auto" width="600" height="400" controls>
<source src="vid3" type="video/mp4" id="myVideo3">
Your browser doesn\'t support HTML 5.
</video>

</body>
</html>

JavaScript

<script>
var vid1 = document.getElementById("myVideo1");
vid1.src = "https://www.w3schools.com/html/mov_bbb.mp4";

var vid2 = document.getElementById("myVideo2");
vid2.src = "https://www.w3schools.com/html/mov_bb.mp4";

var vid3 = document.getElementById("myVideo3");
vid3.src = "";

const videos = document.getElementsByTagName('source');
for (let i = 0; i < videos.length; i++) {
if (!videos[i].src || videos[i].src == window.location.href || videos[i].src === "undefined") {
videos[i].parentElement.style = "display: none";
}
}
</script>

最佳答案

不确定这在原始 HTML 中是否可行,但这在 JavaScript 中肯定是可能的。使用 JavaScript,您可以简单地检查 src 的内容。 <source> 的属性元素指向,如果未设置,则设置父元素 <video>元素有 displaynone .

这可以在下面看到,其中只显示了两个视频之一:

const videos = document.getElementsByTagName('source');
for (let i = 0; i < videos.length; i++) {
if (!videos[i].src || videos[i].src == window.location.href) {
videos[i].parentElement.style = "display: none";
}
}
<!DOCTYPE html>
<html>

<body>

<video preload="auto" width="600" height="400" controls>
<source src="" type="video/mp4">
Your browser doesn\'t support HTML 5.
</video>

<video preload="auto" width="600" height="400" controls>
<source src="https://www.w3schools.com/html/mov_bbb.mp4" type="video/mp4">
Your browser doesn\'t support HTML 5.
</video>

</body>

</html>

关于javascript - 当没有上传视频时,html5 video 标签会显示一个空的视频框。我怎样才能隐藏这个空盒子?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60423864/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com