我有一个Chrome扩展插件,可以将菜单插入到页面中,但是每当任何闪存或html5视频播放器都进入全屏时,视频播放器之外的任何内容都是不可见的。
我是否可以同时在全屏上有两个对象(一个对另一个),或者有其他方法来做到这一点?我宁愿不必专门将html插入到不同网站的不同位置,因为现有的视频播放器种类繁多。这个解决方案应该适用于所有的视频播放器。
编辑:
从那时起,许多网络已经转向使用html5而不是闪存,因此这已经成为一个非常可能的事情,几乎所有的网站。
下面是我最后编写和使用的代码。希望这能帮助到某人:
document.addEventListener("webkitfullscreenchange", function(){//Whenever an element becomes or stops being in full screen
//first, grab the page's fullscreenElement
var fse = document.fullscreenElement||document.mozFullScreenElement||document.webkitFullscreenElement||document.msFullscreenElement;
if(fse){//if there is a fullscreened element
fse.appendChild(menu);//append the menu inside the fullscreened element
}else{//if nothing is in full screen
if(window.self !== window.top){//if we are in an iframe
menu.remove();//hide menu if we are in an iframe
}else{//if we arn't in an iframe
document.body.insertBefore(menu, document.body.firstChild);//show menu
}
}
});
发布于 2014-05-07 01:58:26
这是不可能的。视频播放器全屏实现接管整个屏幕;您不再有一个浏览器窗口可覆盖。
这与在浏览器中使用全屏不一样,在那里仍然有正常的浏览器窗口可供使用。
编辑:进一步扩展;
对于任何使用Flash的视频播放器来说,这是绝对不可能的,因为您没有任何HTML元素可以覆盖;全屏幕是由flash自己处理的,您不能用它做任何事情。
使用HTML5,从我的测试来看,这似乎也是不可能的。我转到此示例页,编辑了开发工具中的HTML,尝试在视频元素中插入一个div,但是它不会呈现。
如果您能够控制页面,则可能会全屏显示一个容器div,而不是视频本身,然后实现您想要的结果,但是由于您无法控制所涉及的页面,这可能根本无助于您(除非您想尝试替换页中的if /etc,但即使这样也不能保证成功;如果页JS已经在相关元素上有句柄,替换If将不会更新这些if)。
发布于 2014-05-15 16:19:03
不幸的是,正如@Collin提到的那样,这是不可能的,因为浏览器在播放全屏视频时非常小心。
你还可以模拟全屏!您可以修改视频的大小,以适应屏幕的大小(或任何您需要的大小)。通过这样做,您仍然可以控制您的元素,并可以显示您的菜单上的视频。
CSS技巧中有一篇文章可以指导你如何修改youtube视频的尺寸。这篇文章的作者也写了一个jQuery插件,叫做FitVids.JS。
通过模拟全屏,你可以在上面显示你想要的东西。
我希望这能帮到你
https://stackoverflow.com/questions/23507096
复制相似问题