我正在寻找保持WebRTC视频流+流控件(挂断,静音等)已加载并处于活动状态的最佳方法,即使用户通过导航菜单导航到另一个子页面也是如此。 我想到了以下方法,但是我不知道这是否是最实用的方法,或者现在是否有更好的解决方案:我只是用导航菜单包装,然后将iFrame放在当前内容所在的位置。视频流本身将进入菜单栏本身(它是一个侧边栏,其宽度足以执行类似的操作),当用户单击菜单项时,iFrame src将替换为新的URL。 这是正确的方法吗?但是,如果是这样,由于到目前为止我还没有使用iFrame,因此我还有其他一些担忧:
allow
属性中,例如在使用摄像头,麦克风或用户位置时。在iFrame中我绝对无法做任何事情吗?感谢任何提示!
答案 0 :(得分:1)
iframe可以正常工作。
使用iFrame时,浏览器功能是否存在缺点?
主要问题是,在加载iframe时,您实际上无法控制页面的显示。例如,当上一页被撕毁并被替换时,用户可能会看到短暂的纯白色瞬间。
在iFrame中我绝对不能做任何事情吗?
iframe非常灵活。请记住,它们具有自己的JavaScript上下文,因此需要编写一些额外的代码来来回移动数据。
iFrame是否与“主”包装器共享(PHP)会话和cookie
是
包装程序和iFrame的JavaScript代码如何相互通信?
实际上,您可以从外部iframe访问iframe的Document对象。 (当然,假设它们来自同一原点。)
const iframe = document.querySlector('iframe');
iframe.contentDocument.querySelector('body').whateveryouwant
也许最好的方法是使用postMessage API。这样,您就可以以一种很好的隔离方式按需来回发送数据。
https://developer.mozilla.org/en-US/docs/Web/API/Window/postMessage