反复报错Cannot read property 'getBoundingClientRect' of null

image.png

刚刚开发的时候发生了一个神奇的异常,不清楚生么原因导致重复发生'getBoundingClientRect' of null 错误,

仔细看了一下错误信息“Uncaught TypeError: Cannot read property 'getBoundingClientRect' of null
at draw ”,这个draw,引起了我的怀疑,仔细看了一下错误的文件,我并没有引用过“jsPlugin-1.2.0.js”,
这个文件是因为我调用了萤石云的ezuikit.js后引入的,他这里说找不到“getBoundingClientRect”这个属性,
那么可能是我在程序中删除了某个属性,并且没有关闭播放器导致的。

function loadVideoDevice(catalogId) {
    var url = rootPath + "/web/videoDevice/listCatalogVideo";

    $.post(url, {"catalogId": catalogId}, function (json) {
        if (json == null || json.length <= 0) {
            var html = $("#deviceNullTmp").html();
            $("#videoDevice").html(html);
            return;
        }

        var temple = $("#deviceTmp").html();
        $("#devices").html(juicer(temple, json));
        $("#devices li:first").click();
    })
}

function loadChannel(obj) {
    $("#devices li").removeClass("active");
    $(obj).addClass("active");
    var url = rootPath + "/web/videoChannel/listDeviceChannel";

    $.post(url, {"deviceId": $(obj).attr("deviceId")}, function (json) {
        var temple = $("#channelTmp").html();
        $("#channels").html(juicer(temple, json));
        $("#channels li:first").click();
    });
}

在这部分程序中,直接把萤石云所占DIV直接就置空了,所以找不多对应属性,又因为他是个H5播放器,一直在绘图,所以一直报错。那么对于这个错误,在相应的地方把播放器关掉就可以了。

function closeDecoder() {
    if(decoder!=null){
        decoder.stop();
        decoder = null;
    }
}

你可能感兴趣的:(反复报错Cannot read property 'getBoundingClientRect' of null)