javascript - 使用 JS/HTML 倒带 YouTube 视频
问题描述
我有一个网站,其中包含来自 youtube 的嵌入式视频,该视频具有特定时间的统计数据。
document.getElementById('video').innerHTML='<iframe width="560" height="315" src="https://www.youtube.com/embed/'+video+'?autoplay=1&start='+timecode+'"</iframe>'
我只需要定期显示某些视频片段,比如说,从 23 到 33 秒。我该如何实施?我可以在 10 秒后将视频倒回到 23 吗?
解决方案
你不能——至少不使用 DOM。
这是因为 YouTube 视频托管在<iframe>
一个限制性的跨站点/跨域设置中,该设置阻止父页面中的脚本(即您控制的脚本)与加载到其中的内容交互<iframe>
- 这是为了防止人们被被欺骗加载一个带有完整页面的网页,该页面<iframe>
以当前用户身份加载 YouTube 视频(假设他们同时登录到 YouTube),并在父页面中有脚本来获取数据/信息或通过使通过 iframe 更改帐户。
但是您可以使用 YouTube 脚本库...
https://developers.google.com/youtube/iframe_api_reference
该库使用更安全的技术postMessage
来安全地向嵌套 iframe 发送和接收消息,而不是直接与其 DOM 交互。
推荐阅读
- yolo - 为什么 Yolo 在 xavier 中运行缓慢?
- angular - Angular 9 项目在使用安全的 null 访问和 null 合并时突然抛出编译错误?
- spring-security - 如何让 KeyCloak 给出一个 *integer* id(既不是长 UUID 也不是用户名)?
- angular - Angular 子组件中断表
- python - 列表只接受一条评论
- jquery - 将 JQuery 调整大小功能应用于我容器中的所有不同 DIV-ID
- python - 使用 scipy.io 打开一个 arff 文件
- shader - MRTK2 模板效果不适用于 TextMeshPro 文本
- sql - 在 Postgresql 中存储数组
- node.js - sinon-mongoose 不适用于 sinon 9