我编写了一个简单的功能来在Web应用程序上切换全屏模式。该应用程序仅需要在Chrome中运行(最终在Kiosk模式下部署),但是使用cancelFullScreen
和似乎有些奇怪的行为webkitCancelFullScreen
。
例如,这是精简toggleFullScreen
功能:
var _isFullscreen = false;
function toggleFullScreen()
{
var doc = document.documentElement,
state = _inFullscreen,
requestFunc = (doc.requestFullScreen || doc.webkitRequestFullScreen),
cancelFunc = (doc.cancelFullScreen || doc.webkitCancelFullScreen);
_inFullscreen = !(state);
(!state) ? requestFunc.call(doc) : cancelFunc.call(doc);
}
出于某些奇怪的原因,即使运行正常,Chrome也会始终报告cancelFunc
为。undefined
requestFunc
任何人都可以解释其原因以及可能的解决方案(不需要jQuery或类似的库插件)吗?
在@Tom Chung的帮助下,经过反复玩耍,结果证明了cancelFullScreen
(同样webkitCancelFullScreen
需要调用document
,而requestFullscreen
需要调用document.documentElement
。
因此,更新后的代码如下工作正常:
function toggleFullScreen()
{
var doc = document.documentElement,
state = (document.webkitIsFullScreen || document.isFullScreen),
requestFunc = (doc.requestFullscreen || doc.webkitRequestFullScreen),
cancelFunc = (document.cancelFullScreen || document.webkitCancelFullScreen);
(!state) ? requestFunc.call(doc) : cancelFunc.call(document);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句