Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/449.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 对象不支持属性或方法“querySelectorAll”(sp.core.debug.js)_Javascript_Jquery_Internet Explorer_Sharepoint_Cross Browser - Fatal编程技术网

Javascript 对象不支持属性或方法“querySelectorAll”(sp.core.debug.js)

Javascript 对象不支持属性或方法“querySelectorAll”(sp.core.debug.js),javascript,jquery,internet-explorer,sharepoint,cross-browser,Javascript,Jquery,Internet Explorer,Sharepoint,Cross Browser,首先,我想告诉大家我是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/

首先,我想告诉大家我是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/ 任何解决方案都无法解决此问题。提前谢谢

编辑:


上面的代码工作正常,但它没有调用object DispHtmlLevel,如何在object DispHtmlLevel上调用QuerySelector和QuerySelectorAll方法。

Sharepoint代码根本不支持IE 7

见:


您可能可以使用和来支持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;
    };
}());}

亲爱的,你能解释一下如何使用吗?一个答案是在我脑海中,只需下载querySelector.polyfill.js并将其添加到我的母版页?@Billi:是的,你会将polyfill放入一个文件中,并在sp.core.debug.js中的代码运行之前加载它。sp.core.debug.js我不包括这个文件。因此,无法找到从哪里加载和我应该添加polyfills@Billi:然后尽可能早地添加它们。无论如何,在使用方法之前必须加载页面内容,因此只要您在头部加载polyfills,它就会工作。您支持吗?是的,我们支持IE7,但此问题尚未解决。你能帮忙吗?
{(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;
    };
}());}