IE 11 lockOrientation 调用时调用对象无效

IE 11 Invalid calling object when lockOrientation called

我有以下代码:

var lockOrientation = screen.lockOrientation || screen.mozLockOrientation || screen.msLockOrientation;
if (lockOrientation) {
    if (lockOrientation("landscape-primary")) {
        // do something
    }
    else{
        // do something else
    }
}

MDN 指定应该如何完成:

https://developer.mozilla.org/en-US/docs/Web/API/Screen/lockOrientation

但是,在 IE11 中我得到这个错误:

调用对象无效

在线

if(lockOrientation("landscape-primary")) {

谁能解释一下这里的问题是什么?

一位同事找到了解决方案:

在IE中,必须在屏幕对象上调用该方法,如下所示:

screen.lockOrientationUniversal = screen.lockOrientation || screen.mozLockOrientation || screen.msLockOrientation;

然后就可以正常工作了。

似乎 MDN 需要更新他们的站点。