javascript - iframe 隐藏时停止

标签 javascript html dom iframe vue.js

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

为了简化我的问题,我将所有实时视频组件嵌入到一个 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 组件内,这意味着所有隐藏操作都会在选项卡更改后自动完成。我不知道如何防止这种默认操作。

A demo of my project

<小时/>

后端 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文件或普通网页时,不会发生此错误。只发生在我自己的页面上。 (这很奇怪,因为我不明白 iframe 内部的函数是如何由外部 iframe 外部的隐藏样式触发的)。

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

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

最佳答案

隐藏 iFrame

.hiddeniFrame{
    width:0px;
    height:0px;
}

或者将其移离屏幕

关于javascript - iframe 隐藏时停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53208742/

相关文章:

javascript - 从复选框标签中添加值

javascript - 循环遍历应用程序脚本中的 Switch 语句

html - 相当于使用 flexbox 的 bootstrap 的 "pull-right"?

javascript - Unca无法将属性 'innerHTML' 设置为 null

html - 在另一个 div 中垂直居中 3 个 div

javascript - JS UNDO DOM 修改

javascript - 使用 JavaScript 从另一个页面获取内容

javascript - 更改 Select 上的 DIV 内容

javascript - 淡入鼠标移动

java - 删除父节点并保留其子节点