Javascript React中是否支持fullscreenchange事件?
我在React中尝试了fullscreenchange,但它不起作用,所以我必须在我的案例中使用addEventListener,我想知道React中是否支持fullscreenchange事件?感谢您的帮助该标识符中似乎没有任何内容。在FullScreenChange中没有Javascript React中是否支持fullscreenchange事件?,javascript,reactjs,Javascript,Reactjs,我在React中尝试了fullscreenchange,但它不起作用,所以我必须在我的案例中使用addEventListener,我想知道React中是否支持fullscreenchange事件?感谢您的帮助该标识符中似乎没有任何内容。在FullScreenChange中没有,您可以在中查看所有受支持的事件 您可以检查一个实现示例,以便在自定义挂钩中使用它: export default function useFullscreenStatus(elRef) { const [isFulls
,您可以在中查看所有受支持的事件
您可以检查一个实现示例,以便在自定义挂钩中使用它:
export default function useFullscreenStatus(elRef) {
const [isFullscreen, setIsFullscreen] = React.useState(
document[getBrowserFullscreenElementProp()] != null
);
const setFullscreen = () => {
if (elRef.current == null) return;
elRef.current
.requestFullscreen()
.then(() => {
setIsFullscreen(document[getBrowserFullscreenElementProp()] != null);
})
.catch(() => {
setIsFullscreen(false);
});
};
React.useLayoutEffect(() => {
document.onfullscreenchange = () =>
setIsFullscreen(document[getBrowserFullscreenElementProp()] != null);
return () => (document.onfullscreenchange = undefined);
});
return [isFullscreen, setFullscreen];
}
function getBrowserFullscreenElementProp() {
if (typeof document.fullscreenElement !== "undefined") {
return "fullscreenElement";
} else if (typeof document.mozFullScreenElement !== "undefined") {
return "mozFullScreenElement";
} else if (typeof document.msFullscreenElement !== "undefined") {
return "msFullscreenElement";
} else if (typeof document.webkitFullscreenElement !== "undefined") {
return "webkitFullscreenElement";
} else {
throw new Error("fullscreenElement is not supported by this browser");
}
}
这对我帮助很大:)它在任何地方都能工作,但在ios safari中,它的获取错误,fullscreenElement不受此浏览器支持。@丹尼斯:有什么想法吗?这对新手会有帮助的