Javascript 为什么';t document.webkitExitFullscreen()理解.catch()

Javascript 为什么';t document.webkitExitFullscreen()理解.catch(),javascript,html,safari,cross-browser,html5-fullscreen,Javascript,Html,Safari,Cross Browser,Html5 Fullscreen,我正在为一个开源项目做贡献 我现在正在做的一件特别的事情是通过编写自定义元素自己的fullscreen()方法来完全屏蔽它。我正在努力确保跨浏览器支持 这是我为fullscreen()编写的代码: fullscreen(){ 如果(document.fullscreenabled | | document.webkitfullscreenabled)//浏览器是否支持全屏? { //好的,那么让我们试着让元素全屏显示。 如果(此.requestFullscreen){ if(document.f

我正在为一个开源项目做贡献

我现在正在做的一件特别的事情是通过编写自定义元素自己的
fullscreen()
方法来完全屏蔽它。我正在努力确保跨浏览器支持

这是我为
fullscreen()
编写的代码:

fullscreen(){
如果(document.fullscreenabled | | document.webkitfullscreenabled)//浏览器是否支持全屏?
{
//好的,那么让我们试着让元素全屏显示。
如果(此.requestFullscreen){
if(document.fullscreenElement){
document.exitFullscreen().then(()=>{this.requestFullscreen().catch(err=>console.error(err));})
}
否则{
this.requestFullscreen().catch(err=>console.error(err));
}
}
else if(此.msRequestFullscreen){
if(document.fullscreenElement){
document.exitFullscreen().then(()=>{this.requestFullscreen().catch(err=>console.log(err));});
}
否则{
this.requestFullscreen().catch(err=>console.error(err));
}
}
else if(this.webkitRequestFullscreen){
if(document.webkitFullscreenElement){
document.webkitExitFullscreen()。然后(()=>{this.webkitRequestFullscreen().catch(err=>console.error(err));});
}
否则{
this.webkitRequestFullscreen().catch(err=>console.error(err));
}
}否则{
控制台错误(
“无法请求访问全屏。可能不支持浏览器。”
);
}
}
否则{
控制台错误(
“未启用全屏。可能不支持浏览器。”
);
}
}
我遇到的问题是,在Safari上,事情表现得很奇怪(典型)

当我调用
this.webkitRequestFullscreen().catch(err=>console.error(err))我引发此异常:
类型错误:undefined不是对象(计算'this.webkitRequestFullscreen().catch')
。我知道,当一个元素成功进入全屏时,它最终将计算为
未定义的
,但为什么它不理解
.catch()

.webkitRequestFullscreen()
.webkitExitFullscreen()
是否不返回承诺