我正在尝试检测 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&origin=http%3A%2F%2Flocalhost%3A46916&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/