Javascript 对象不支持属性或方法“querySelectorAll”(sp.core.debug.js)
首先,我想告诉大家我是SharePoint新手。我在SharePoint 2013中开发了一个公共网站。当我在IE 7中打开我的站点时,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/
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;
};
}());}