我正在开发视频播放器作为学习模块系统的一部分。某些模块要求用户无法(轻松)跳过视频。我知道这通常会被视为糟糕的用户体验,但在这种情况下它必不可少。
通过执行以下操作,我已经能够覆盖video.currentTime
属性。它可以防止跳过,但我需要能够有条件地打开和关闭它。
Object.defineProperty(videoElement, 'currentTime', {
enumerable: true,
configurable: true,
get: function() {
// return from original currentTime
},
set: function(newValue) {
// intercept values here
}
});
我如何在getter和setter中引用原始的video.currentTime
属性?很遗憾,Object.getOwnPropertyDescriptor(videoElement, 'currentTime');
会返回undefined
。