Angular 2和全屏API

问题描述:

我查看了文档和示例,但没有找到在“文档”元素上监听“onfullscreenchange”事件和/或它的变体(“onwebkitfullscreenchange”等)的方法。Angular 2和全屏API

我所没有成功尝试:

/*method 1*/  
host: { 
     '(document:onwebkitfullscreenchange)': 'fullScreen()' 
    } 
/*method 2*/ 
    @HostListener("document:onwebkitfullscreenchange", []) fullScreen() {} 
/*method 3*/ 
    renderer.listenGlobal('document', 'onwebkitfullscreenchange', (event) => {}) 

所有与更常见的事件,如onclick事件上面的工作。

如果你已经想出了一种将fullscreen API与Angular 2集成的方法,或者有关于如何去做或尝试的其他想法或建议,我会非常感谢你的帮助。

编辑:如果你能指点我一个有用的资源,这可能会demistify(甚至部分),我将不胜感激。谢谢!

ANSWER document:webkitfullscreenchange(等等的其他浏览器)

有作为onfullscreenchange事件类型没有这样的事情。这是事件处理,所以你可以做(​​但可能是不应该的,因为它不是真正这样做的“角办法”):

document.onfullscreenchange =() => console.log('fullscreenchange event fired!'); 

但有一个fullscreenchange事件,所以这应该工作精细:

@HostListener("document:fullscreenchange", []) fullScreen() {} 
+0

的“onfullscreenchange”是标准的,但如果你看看文档的API https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API你会看到每个浏览器都实现了不同的事件处理程序,而不是标准,除非我读错了。除此之外,我刚刚测试过你的建议,它不起作用。也许我错过了一些东西,但我无法弄清楚。 –

+0

所以它实际上是浏览器前缀 - >对于chrome文档:webkitfullscreenchange。但它的工作。但是,由于某些原因,如果使用F11默认键绑定进行全屏显示,则不会触发该事件。您可以手动触发它,在F11/ESC上通过各自键盘上的侦听器进行触发。 –