对象没有't支持属性或方法'querySelectorAll'(sp.core.debug.js

Object doesn't support property or method 'querySelectorAll' (sp.core.debug.js)

本文关键字:querySelectorAll sp core 方法 js debug 属性 支持 对象      更新时间:2024-06-26

首先,我想告诉大家我是SharePoint新手。我在SharePoint 2013中开发了一个公共网站。当我在IE 7中打开我的网站时,sp.core.debug.js 中出现以下异常

Object doesn't support property or method 'querySelectorAll'
Object doesn't support property or method 'querySelector'

sp.core.debug.js是一个框架文件,位于_layouts/15/任何解决方案如何解决此问题。提前谢谢。

编辑:

 {(function () {
    if (document.querySelectorAll || document.querySelector) {
        return;
    }
    var
        style = document.createStyleSheet(),
        select = function (selector, maxCount) {
            var
                all = document.all,
                l = all.length,
                i,
                resultSet = [];
            style.addRule(selector, "*[id*='ElementId']");
            for (i = 0; i < l; i += 1) {
                if (all[i].id === "ElementId") {
                    resultSet.push(all[i]);
                    if (resultSet.length > maxCount) {
                        break;
                    }
                }
            }
            style.removeRule(0);
            return resultSet;
        };
    document.querySelectorAll = function (selector) {
        return select(selector, Infinity);
    };
    document.querySelector = function (selector) {
        return select(selector, 1)[0] || null;
    };
}());}

上面的代码工作得很好,但它没有调用对象disphtmldivelement,如何对对象disphtmldiv元素调用QuerySelector和QuerySelectorAll方法。

IE 7根本不受Sharepoint代码的支持。

请参阅:SharePoint 2013 中的计划浏览器支持

您可以使用IE7 querySelectorpolyfill和IE7 querySelectedAllpolyfill来支持IE7。

IE7不支持querySelectorAll。它没有定义,所以你必须检查它,并在javascript代码中自己定义它。你可以这样做。

{(function () {
    if (document.querySelectorAll || document.querySelector) {
        return;
    }
    var
        style = document.createStyleSheet(),
        select = function (selector, maxCount) {
            var
                all = document.all,
                l = all.length,
                i,
                resultSet = [];
            style.addRule(selector, "*[id*='ElementId']");
            for (i = 0; i < l; i += 1) {
                if (all[i].id === "ElementId") {
                    resultSet.push(all[i]);
                    if (resultSet.length > maxCount) {
                        break;
                    }
                }
            }
            style.removeRule(0);
            return resultSet;
        };
    document.querySelectorAll = function (selector) {
        return select(selector, Infinity);
    };
    document.querySelector = function (selector) {
        return select(selector, 1)[0] || null;
    };
}());}