Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未捕获类型错误:非法调用javascript_Javascript_Ecmascript 6 - Fatal编程技术网

未捕获类型错误:非法调用javascript

未捕获类型错误:非法调用javascript,javascript,ecmascript-6,Javascript,Ecmascript 6,如何修复此类中调用函数时的非法调用 新建FullScreen.request;//未捕获类型错误:非法调用 新建全屏显示。取消//未捕获类型错误:非法调用 新的全屏切换//未捕获类型错误:非法调用 这在Javascript中是与上下文相关的。当您调用this.request时,它将转换为this.requestFullscreen。当this.requestFullscreen=document.documentElement.requestFullscreen时,this.requestFul

如何修复此类中调用函数时的非法调用

新建FullScreen.request;//未捕获类型错误:非法调用 新建全屏显示。取消//未捕获类型错误:非法调用 新的全屏切换//未捕获类型错误:非法调用


这在Javascript中是与上下文相关的。当您调用this.request时,它将转换为this.requestFullscreen。当this.requestFullscreen=document.documentElement.requestFullscreen时,this.requestFullscreen!=document.documentElement.requestFullscreen。相反,this.requestFullscreen==document.documentElement.requestFullscreen.callthis。换句话说,requestFullscreen函数期望一个documentElement作为该指针,但它获取一个全屏实例,从而导致非法调用异常。要修复此错误,您需要在构造函数中绑定上下文。

Javascript中的上下文与上下文相关。当您调用this.request时,它将转换为this.requestFullscreen。当this.requestFullscreen=document.documentElement.requestFullscreen时,this.requestFullscreen!=document.documentElement.requestFullscreen。相反,this.requestFullscreen==document.documentElement.requestFullscreen.callthis。换句话说,requestFullscreen函数期望一个documentElement作为该指针,但它获取一个全屏实例,从而导致非法调用异常。要修复错误,您需要在构造函数中绑定上下文。

如果不进行测试,我的最佳猜测是您丢失了文档的上下文。我建议将文档元素转移到方法中

import validator from "Validator";

export default class FullScreen {
    constructor() {
        if (!validator.checkValueType(Modernizr.fullscreen, "BOOLEAN") && Modernizr.fullscreen) {
            throw new UserException("Fullscreen not supported in this browser");
        }
    }

    request() {
        document.documentElement.requestFullscreen || document.documentElement.msRequestFullscreen ||
                document.documentElement.mozRequestFullScreen || document.documentElement.webkitRequestFullscreen;
    }

    cancel() {
        document.cancelFullScreen || document.msCancelFullScreen || document.mozRequestFullScreen || document.webkitRequestFullscreen;
    }

    isFullScreen() {
        return document.isFullScreen || document.msIsFullScreen || document.mozIsFullScreen || document.webkitIsFullScreen;
    }

    toggle() {
        if (this.isFullScreen()) this.cancel();
        else this.request();
    }
}

如果不进行测试,我最好的猜测是您已经丢失了文档的上下文。我建议将文档元素转移到方法中

import validator from "Validator";

export default class FullScreen {
    constructor() {
        if (!validator.checkValueType(Modernizr.fullscreen, "BOOLEAN") && Modernizr.fullscreen) {
            throw new UserException("Fullscreen not supported in this browser");
        }
    }

    request() {
        document.documentElement.requestFullscreen || document.documentElement.msRequestFullscreen ||
                document.documentElement.mozRequestFullScreen || document.documentElement.webkitRequestFullscreen;
    }

    cancel() {
        document.cancelFullScreen || document.msCancelFullScreen || document.mozRequestFullScreen || document.webkitRequestFullscreen;
    }

    isFullScreen() {
        return document.isFullScreen || document.msIsFullScreen || document.mozIsFullScreen || document.webkitIsFullScreen;
    }

    toggle() {
        if (this.isFullScreen()) this.cancel();
        else this.request();
    }
}