gpt4 book ai didi

javascript - 动态地将嵌入的 YouTube 视频添加到页面

转载 作者:行者123 更新时间:2023-12-03 06:09:18 24 4
gpt4 key购买 nike

我已经浏览了针对该主题建议的现有帖子,但似乎没有一个帖子专门解决了我正在寻找的内容。

我有一个包含大量嵌入式 YouTube 视频的页面,在快速连接下加载该页面需要一分多钟的时间 - 在慢速连接上几乎需要永远。

我一直在研究灯箱方法,但大多数都需要将对象(图像、视频)编码到页面中,然后更改 CSS 以使其在单击链接时可见。我想要做的是对链接(文本或图像)和用于创建灯箱效果的周围 div 进行硬编码,然后在单击链接时创建嵌入视频的代码。

类似这样的事情:

<div class="wrapper">
<a href="videos.php" onclick="myFunction(*youtube id*); return false;">Video #1</a>
<div class='lightboxOverlay hidden'> //div is hidden
<div class='lightboxContent'>
// Javascript writes code for embedded video here,
// then makes the parent div visible
</div>
</div>
</div>

我会使用“getElementByID(div id).innerHTML="CodeForVideo”,但有多个视频,因此我无法仅定位一个视频被点击了。

是否有任何方法可以针对所选视频的 div 并仅在该 div 中编写代码,或者是否有更好的方法来实现此目的?

<小时/>

感谢您的快速回复,@Davidlrnt!但是,该网站必须保持向后兼容,并且 Youtube API 仅适用于兼容 HTML5 的浏览器。

我尝试过这个:

<div class="thumbnail">
<a href="videos.php" onclick="vLightbox(Rt87CBUBlCo); return false;"><img src="images/thumbnails/20160828.jpg" /></a>
<div class='lbOverlay hidden'>
<div id="Rt87CBUBlCo" class='lbContent'>
</div>
</div>
</div>

function vLightbox(YoutubeID){
document.getElementById(YoutubeID).innerHTML = '<iframe width="420" height="315" src="https://www.youtube.com/embed/' + youTubeID + '-ZnkxjjymsU?rel=0" frameborder="0" allowfullscreen style="float:right; margin-left:20px;"></iframe>';
}

但没有成功。我一定错过了一些东西......

最佳答案

您需要使用 youtube iframe api,并且可以通过视频 ID 动态嵌入任何视频。

https://developers.google.com/youtube/iframe_api_reference

函数 onYouTubeIframeAPIReady() {
玩家 = new YT.Player('玩家', {
高度:'390',
宽度:'640',
视频 ID: 'M7lc1UVf-VE',
事件:{
'onReady': onPlayerReady,
'onStateChange':onPlayerStateChange
}
});
}

关于javascript - 动态地将嵌入的 YouTube 视频添加到页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39395109/

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