我一直在尝试了解来自该网站Meg的main.min.js文件中的哪些代码段将youtube视频作为iframe插入了叠加层。
<iframe id="auto-play-vid" frameborder="0" allowfullscreen="1" allow="autoplay; encrypted-media" title="YouTube video player" width="100%" height="360" src="https://www.youtube.com/embed/bsLk0NPRFAc?rel=0&playsinline=0&autoplay=1&controls=1&enablejsapi=1&showinfo=0&suggestedQuality=hd720&wmode=transparent&iv_load_policy=3&origin=http%3A%2F%2Foutlawed-movie.test%3A8888&widgetid=2"></iframe>
当我下载代码时,id =“ youtube-overlay”为空,其中没有包含YouTube视频的iframe。但是,当我在浏览器中打开index.html文件时,视频会播放...为什么以及如何完成此操作?
</div>
<div id="auto-play-close">
<div class="back">
<svg fill="#ffffff" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" />
<path d="M0 0h24v24H0z" fill="none" />
</svg>
</div>
<div class="front">
<svg fill="#c7ef00" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z" />
<path d="M0 0h24v24H0z" fill="none" />
</svg>
</div>
</div>
</div>
答案 0 :(得分:1)
function e() {
$("#youtube-overlay").css("display", "flex"),
utilsController.checkYouTube() ? setTimeout(function() {
t = function() {
try {
n.pauseVideo()
} catch (e) {}
}
,
s = function() {
try {
n.playVideo()
} catch (e) {}
}
,
h || _isIpad || ($(window).bind("focusout", t),
$(window).bind("focusin", s)),
$("#auto-play-close").on("click", function() {
try {
n.destroy()
} catch (e) {
console.log(e)
}
h || _isIpad || ($(window).unbind("focusout", t),
$(window).unbind("focusin", s)),
$("#youtube-overlay").css("display", "none"),
v = !1,
_ && b(),
i && "true" === i && f()
}),
n = new YT.Player("auto-play-vid",{
width: "100%",
videoId: o,
playerVars: {
rel: 0,
playsinline: 0,
autoplay: h || _isIpad ? 0 : 1,
controls: 1,
enablejsapi: 1,
showinfo: 0,
suggestedQuality: "hd720",
wmode: "transparent",
iv_load_policy: "3"
},
events: {
onReady: onPlayerReady,
onStateChange: function(e) {
e && 0 == e.data && ($("#youtube-overlay").css("display", "none"),
v = !1,
_ && b(),
f())
}
}
})
}, 300) : setTimeout(e, 1e3)
}()
}
此部分在运行时(大概是在页面加载时)将#youtube-overly
div的显示属性切换为flex
(而不是none
),以允许div取{{ fixed
的1}}位置(即固定在四个角处-全屏显示)并显示0,0,0,0
,该iframe
在更改CSS之前已经在div中。
onStateChange
将其切换回none
并隐藏div,然后进行一些难以从缩略代码中读取的检查。
tldr; iframe位于“隐藏”的div中,由上面的代码段“显示”(以及与问题不一定相关的其他内容)