javascript - 在 javascript 中读取 iFrame 中 div 的状态(不在同一域 - YouTube)

标签 javascript youtube-api

我正在尝试检测 Youtube 中“更多视频”栏的状态,即当您按下暂停键时显示的栏,那里有两个选项。或者该栏是否可见,而按钮仅显示。 (显示:阻止或显示:无)我想知道按钮何时显示,这意味着用户已最小化“更多视频”栏。

这里需要注意的是,这是跨域的,因此 Cors 会阻止更改,但如果只是请求信息,它也会阻止吗?为了使其接近核心,我只想使用 vJavascript。

这将是搜索元素的选项,但我不想更改它,而是想知道状态(display:block 或 display:none)

var iframe = document.getElementById("myFrame");
var elmnt = iframe.contentWindow.document.getElementsByTagName("H1")[0];
elmnt.style.display = "none";

还需要注意的是,使用了 Youtube-Api,因此我不会自己在页面上添加 iFrame。但是,一旦加载了 iframe,就可以稍后发送请求。

我很想知道这个 div:

<iframe id="player" frameborder="0" allowfullscreen="1" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" 
title="YouTube video player" width="960" height="408" src="https://www.youtube.com/embed/xxx?enablejsapi=1&amp;origin=http%3A%2F%2Flocalhost%3A46916&amp;widgetid=1">
#document
<body>
 <div id="player" ....
   <div class="class="html5-video-player .....
     <div class="ytp-pause-overlay ytp-scroll-min"...
 ...
</body>
</iframe>

最佳答案

您甚至不允许从另一个域读取帧。您需要通过自己的服务器代理请求并在返回响应之前播放内容。需要明确的是,不存在仅客户端的 JavaScript 解决方案。

关于javascript - 在 javascript 中读取 iFrame 中 div 的状态(不在同一域 - YouTube),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55236085/

相关文章:

java - YouTube直接API : Could not retrieve YouTube upload token: 400

java - 上传带字幕的视频

video - 在YouTube上上传了不适当的视频

ios - 检查 gdata 访问 token 的有效性

ios - 解析 YouTube JSON

javascript - 如何在 ES6 中使用 React 编写交互式 d3 组件?

javascript - 如何在具有不同高度的两个元素之间同步滚动

javascript - 获取请求失败,错误为 : connect ECONNREFUSED

javascript - 绑定(bind)范围 javascript

javascript - 使用子数组 Angular 自动完成选择