Sharepoint SP.Ribbon.WebPartComponent.getWebPartAdder()返回未定义的
我正在使用源代码处理用户web部件按钮单击事件 函数“addWebPart()”调用函数“SP.Ribbon.WebPartComponent.getWebPartAdder()”,该函数本应返回加法器实例,但有时返回未定义的 如果我添加一个while循环以等待实例值正确返回,那么VM中的浏览器会暂停一段时间。返回实例后,浏览器将再次响应。这只在某些情况下发生 我正在使用SharePoint 2013,我所指的代码部分是:Sharepoint SP.Ribbon.WebPartComponent.getWebPartAdder()返回未定义的,sharepoint,sharepoint-2013,Sharepoint,Sharepoint 2013,我正在使用源代码处理用户web部件按钮单击事件 函数“addWebPart()”调用函数“SP.Ribbon.WebPartComponent.getWebPartAdder()”,该函数本应返回加法器实例,但有时返回未定义的 如果我添加一个while循环以等待实例值正确返回,那么VM中的浏览器会暂停一段时间。返回实例后,浏览器将再次响应。这只在某些情况下发生 我正在使用SharePoint 2013,我所指的代码部分是: addWebPart = function (wpCategory, w
addWebPart = function (wpCategory, wpTitle) {
var webPartAdder = SP.Ribbon.WebPartComponent.getWebPartAdder();
while (webPartAdder == undefined)
webPartAdder = SP.Ribbon.WebPartComponent.getWebPartAdder();
// ... Other stuff ...
}
如何解决此问题?对于任何想找到此问题答案的人,您必须调用“loadwPaderOnDemand()”函数,然后等待事件“\u spEventWebPartAdderReady”。然后查询“window.WPAdder”:
addWebPartDelayed = function (webPartAdder, wpCategory, wpTitle) {
var webPart = findWebPart(webPartAdder, wpCategory, wpTitle);
if (webPart) {
var zone = WPAdder._zones[0];
var wpid = WPAdder._createWebpartPlaceholderInRte();
WPAdder.addItemToPageByItemIdAndZoneId(webPart.id, zone.id, 0, wpid);
}
else
alert('ERROR: Web part not found! Please try again after sometime.');
},
addWebPart = function (wpCategory, wpTitle) {
var webPartAdder = window.WPAdder;
if (webPartAdder == undefined) {
LoadWPAdderOnDemand();
ExecuteOrDelayUntilEventNotified(
function () {
var webPartAdder = window.WPAdder;
addWebPartDelayed(webPartAdder, wpCategory, wpTitle);
},
"_spEventWebPartAdderReady");
}
else
addWebPartDelayed(webPartAdder, wpCategory, wpTitle);
};
对于任何想找到这个问题答案的人来说,您必须调用'LoadWPAdderOnDemand()'函数,然后等待事件'\u spEventWebPartAdderReady'。然后查询“window.WPAdder”:
addWebPartDelayed = function (webPartAdder, wpCategory, wpTitle) {
var webPart = findWebPart(webPartAdder, wpCategory, wpTitle);
if (webPart) {
var zone = WPAdder._zones[0];
var wpid = WPAdder._createWebpartPlaceholderInRte();
WPAdder.addItemToPageByItemIdAndZoneId(webPart.id, zone.id, 0, wpid);
}
else
alert('ERROR: Web part not found! Please try again after sometime.');
},
addWebPart = function (wpCategory, wpTitle) {
var webPartAdder = window.WPAdder;
if (webPartAdder == undefined) {
LoadWPAdderOnDemand();
ExecuteOrDelayUntilEventNotified(
function () {
var webPartAdder = window.WPAdder;
addWebPartDelayed(webPartAdder, wpCategory, wpTitle);
},
"_spEventWebPartAdderReady");
}
else
addWebPartDelayed(webPartAdder, wpCategory, wpTitle);
};
对于任何想找到这个问题答案的人来说,您必须调用'LoadWPAdderOnDemand()'函数,然后等待事件'\u spEventWebPartAdderReady'。然后查询“window.WPAdder”:
addWebPartDelayed = function (webPartAdder, wpCategory, wpTitle) {
var webPart = findWebPart(webPartAdder, wpCategory, wpTitle);
if (webPart) {
var zone = WPAdder._zones[0];
var wpid = WPAdder._createWebpartPlaceholderInRte();
WPAdder.addItemToPageByItemIdAndZoneId(webPart.id, zone.id, 0, wpid);
}
else
alert('ERROR: Web part not found! Please try again after sometime.');
},
addWebPart = function (wpCategory, wpTitle) {
var webPartAdder = window.WPAdder;
if (webPartAdder == undefined) {
LoadWPAdderOnDemand();
ExecuteOrDelayUntilEventNotified(
function () {
var webPartAdder = window.WPAdder;
addWebPartDelayed(webPartAdder, wpCategory, wpTitle);
},
"_spEventWebPartAdderReady");
}
else
addWebPartDelayed(webPartAdder, wpCategory, wpTitle);
};
对于任何想找到这个问题答案的人来说,您必须调用'LoadWPAdderOnDemand()'函数,然后等待事件'\u spEventWebPartAdderReady'。然后查询“window.WPAdder”:
addWebPartDelayed = function (webPartAdder, wpCategory, wpTitle) {
var webPart = findWebPart(webPartAdder, wpCategory, wpTitle);
if (webPart) {
var zone = WPAdder._zones[0];
var wpid = WPAdder._createWebpartPlaceholderInRte();
WPAdder.addItemToPageByItemIdAndZoneId(webPart.id, zone.id, 0, wpid);
}
else
alert('ERROR: Web part not found! Please try again after sometime.');
},
addWebPart = function (wpCategory, wpTitle) {
var webPartAdder = window.WPAdder;
if (webPartAdder == undefined) {
LoadWPAdderOnDemand();
ExecuteOrDelayUntilEventNotified(
function () {
var webPartAdder = window.WPAdder;
addWebPartDelayed(webPartAdder, wpCategory, wpTitle);
},
"_spEventWebPartAdderReady");
}
else
addWebPartDelayed(webPartAdder, wpCategory, wpTitle);
};