答案 0 :(得分:0)
由加载的内容完成,请参阅http://codepen.io/rafaelcastrocouto/full/pfxat的来源(第一个的iFrame路径)。
答案 1 :(得分:0)
我知道这是一篇非常古老的帖子,但对于那些在2018年仍然很好奇的人来说:
你需要
以下内容将查找并遍历DOM中呈现的所有节点。对于每个HTMLElement,它会将CSS属性设置为“暂停”。
function disablewebkitAnimations() {
var nodes = document.querySelectorAll('*')
for (var i = 0; i < nodes.length; i++) {
style = nodes[i].style
style.webkitAnimationPlayState = 'paused'
document.body.className = 'paused'
}
}
以下函数将选择 type 类型的所有元素,迭代它们并简单地调用 pause()方法。
function pauseElementTypes(type) {
let nodes = document.querySelectorAll(type)
for (var i = 0, els = document.getElementsByTagName(type); i < els.length; i++) {
els[i].pause();
}
}
注意:这将不停止未在DOM中呈现的音频和视频元素。这意味着如果您创建一个新的HTMLAudioElement,然后播放它但不将其附加到您的文档,它将继续播放。这就是为什么CodePen上的一些笔有时候仍会设法发出声音的原因。
一个简单的函数,完成我们刚刚描述的所有内容。
function iFrameDisable() {
disablewebkitAnimations()
pauseElementTypes("audio")
pauseElementTypes("video")
}
setTimeout(iFrameDisable, 4000) // execute after 4 seconds
基本上,在CodePen上,他们会在搜索结果的每个iFrame中注入以下代码。 (函数名称可能不同,但概念上相同)
<script>
function disablewebkitAnimations() {
var nodes = document.querySelectorAll('*')
for (var i = 0; i < nodes.length; i++) {
style = nodes[i].style
style.webkitAnimationPlayState = 'paused'
document.body.className = 'paused'
}
}
function pauseElementTypes(type) {
let nodes = document.querySelectorAll(type)
for (var i = 0, els = document.getElementsByTagName(type); i < els.length; i++) {
els[i].pause();
}
}
function iFrameDisable() {
disablewebkitAnimations()
pauseElementTypes("audio")
pauseElementTypes("video")
}
setTimeout(iFrameDisable, 4000)
</script>
详细了解开发中的disabling iFrames