iframe 隐藏时停止

毛托比

我正在编写一个实时视频网站,它使用第三方工具来播放视频。

为了简化我的问题,我将所有实时视频组件嵌入到一个 HTML 页面中。它看起来像这样。

<iframe data-v-140cfad2="" width="800" height="500" src="/backend/render/live?uid=047a911d83&amp;vid=254084" id="haha"></iframe>

当页面加载时,它正常播放视频。但是,我在 Chrome 控制台中编写了以下命令。

a = document.getElementById('haha')
a.hidden = true;//or a.style.display = 'none'

不仅视频窗口消失了(如我所愿),音频也消失了(这不是我想要的)。我不知道它是如何停止的,如果有什么办法仍然可以在后台运行视频。


更新 :

将 iframe 的大小更改为 0px * 0px 是一种将 iframe 移动到背景中的方法。然而它不适合我的情况。

我使用的是 vue.js 和 element-ui。iframe 位于el-tabs组件内部,这意味着所有隐藏的操作都是在选项卡更改后自动完成的。我不知道如何防止这种默认操作。

我的项目的演示


后端 iframe 代码:

(() => {
        window.onload = function() {
                let ctx = document.getElementById('player');
                let uid = ctx.getAttribute('uid');
                let vid = ctx.getAttribute('vid');
                let cfg = {
                        uid: uid,
                        vid: vid,
                        height: 500,
                        width: 800,
                };
                console.log(">>>",cfg);
                player = polyvObject('#player').
                        livePlayer(cfg);
        }
})();
<!DOCTYPE html>
<html>

<head>
  <script src="http://player.polyv.net/script/player.js"></script>
  <script src="http://player.polyv.net/livescript/liveplayer.js"></script>
  <script src="/backend/js/live.js"></script>
  <link rel="stylesheet" href="/backend/css/live.css">
</head>

<body>
  <div id="player" uid="#{uid}" vid="#{vid}"></div>
</body>

</html>


iframe嵌入 MP4 文件或普通网页时不会发生此错误只发生在我自己的页面上。(这很奇怪,因为我不明白 INSIDE 的函数iframe如何被隐藏的样式 OUTSIDE 触发的iframe)。

我通过修改element-ui组件以避免v-show在隐藏组件时使用来解决这个问题详细信息显示在我自己发布的解决方案中。

感谢所有回答我问题的人:)

毛托比

最后,我用丑陋的方法解决了我自己的问题。

visibility='hidden'设置样式,iframe 工作正常所以我只是el-tab-pane在 element-ui 中重写了

最初的版本el-tab-pane是:

<template>
  <div
    class="el-tab-pane"
    v-if="(!lazy || loaded) || active"
    v-show="active"
    role="tabpanel"
    :aria-hidden="!active"
    :id="`pane-${paneName}`"
    :aria-labelledby="`tab-${paneName}`"
  >
    <slot></slot>
  </div>
</template>

A 做了一点修改如下(v-visible 包含在npm vue-visible 包中)[ TabPane]

<template>
  <div
    class="el-tab-pane"
    v-if="(!lazy || loaded) || active"
    v-show="active || fly"
    v-visible="active || !fly"
    role="tabpanel"
    :aria-hidden="!active"
    :id="`pane-${paneName}`"
    :aria-labelledby="`tab-${paneName}`"
  >
    <slot></slot>
  </div>
</template>

在我自己的代码中,我将 替换el-tab-pane为我的 DIY TabPane,添加了一个propsnamedfly来指示是使用v-show还是v-visible隐藏组件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

隐藏时如何显示iframe?

来自分类Dev

当IE中的iframe为空时,在iframe中隐藏滚动

来自分类Dev

在加载后续内容时隐藏iframe

来自分类Dev

在iframe中隐藏图片

来自分类Dev

在悬停时在vimeo iframe上隐藏暂停/播放按钮

来自分类Dev

选中复选框时,在iframe中隐藏元素

来自分类Dev

单击按钮后显示图片,并在加载iframe时隐藏

来自分类Dev

浏览器离线时如何隐藏iframe

来自分类Dev

在iframe中打开网页时如何隐藏按钮?

来自分类Dev

当iframe没有ID时,向父级隐藏iframe中的元素

来自分类Dev

当iframe应该悬停显示时,Internet Explorer会隐藏iframe

来自分类Dev

使用jQuery不会隐藏iframe

来自分类Dev

隐藏其容器div后如何使用Web音频API停止iframe中的音频?

来自分类Dev

隐藏其容器div后如何使用Web音频API停止iframe中的音频?

来自分类Dev

可见时加载iframe

来自分类Dev

从iframe加载时更改网址

来自分类Dev

刷新iframe时更改网址

来自分类Dev

单击事件时加载 iframe

来自分类Dev

Internet Explorer应该在悬停显示时隐藏iframe

来自分类Dev

如何在使用iFrame嵌入Power BI报表时隐藏“页面”和“过滤器”

来自分类Dev

隐藏滚动条iFrame子网站

来自分类Dev

在iframe的父级中隐藏div

来自分类Dev

如何使用jQuery在keydown上隐藏iframe

来自分类Dev

如果未正确加载,则隐藏iframe

来自分类Dev

OpenID Connect授权端点XHR与隐藏的iframe

来自分类Dev

条纹“付款”按钮隐藏在iframe中

来自分类Dev

输入类型的iframe是否会隐藏加载?

来自分类Dev

如何隐藏/覆盖iframe的特定部分

来自分类Dev

php隐藏iframe直到特定日期