-
Notifications
You must be signed in to change notification settings - Fork 0
/
webPart_webSiteAssets_detectWPZ.html
56 lines (52 loc) · 3.43 KB
/
webPart_webSiteAssets_detectWPZ.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<script type="text/javascript">
var detectWPZDict = detectWPZDict || [];
var fxAppendDetectWPZScript = fxAppendDetectWPZScript || function(){
var appendScriptTag = document.createElement("SCRIPT");
appendScriptTag.src = _spPageContextInfo.webAbsoluteUrl +"/SiteAssets/detectWPZ-vanilla.js";
var thisMoment = new Date();
appendScriptTag.setAttribute("instanceMoment", thisMoment.valueOf());
document.writeln(appendScriptTag.outerHTML);
var bFirstInt = true;
var myInt = setInterval(function(){
if ( bFirstInt === true ){
if ( !document.querySelector("[script*='/SiteAssets/detectWPZ-tabs.js']") ){
var appendScriptTag = document.createElement("SCRIPT");
appendScriptTag.src = _spPageContextInfo.webAbsoluteUrl +"/SiteAssets/detectWPZ-tabs.js";
document.head.appendChild(appendScriptTag);
}
}
if ( typeof(detectWPZ) !== "undefined" ){
var dictIndex = detectWPZDict.push(new wpzDetector(thisMoment.valueOf()));
dictIndex--;
detectWPZDict[dictIndex].scriptTag = document.querySelector("SCRIPT[src*='detectWPZ'][instanceMoment='"+detectWPZDict[dictIndex].instanceName+"']");
detectWPZDict[dictIndex].guid = detectWPZDict[dictIndex].scriptTag.parentElement.parentElement.getAttribute("webpartid");
detectWPZDict[dictIndex].myWebPart = detectWPZDict[dictIndex].scriptTag.parentElement.parentElement.parentElement.parentElement;
//detectWPZDict[dictIndex].wpz = detectWPZDict[dictIndex].scriptTag.parentElement.parentElement.parentElement.parentElement.parentElement.parentElement;
detectWPZDict[dictIndex].wpz = detectWPZ.parentsUntilMatchingSelector(detectWPZDict[dictIndex].myWebPart,"TD[name='_invisibleIfEmpty'], DIV.ms-rte-layoutszone-inner", 50);
if ( detectWPZ.isPageInEditMode() === false ) {
detectWPZ.getZoneWebParts(detectWPZDict[dictIndex], function(siblingWebPart){
try{console.log("wpzDetector instance "+ thisMoment.valueOf());}catch(err){}
try{console.log(siblingWebPart);}catch(err){}
}, function(){
try{console.log("wpzDetector instance "+ thisMoment.valueOf() +" finished looping through my WPZ's web parts");}catch(err){}
setTimeout(function(){
if ( typeof(convertDetectedWebPartsToTabs) !== "undefined" ){
convertDetectedWebPartsToTabs();
}
},500);
});
}
var collWPs = detectWPZDict[dictIndex].wpz.querySelectorAll("[id^='MSOZoneCell_WebPartWPQ']");
for ( var iSibling = 0; iSibling < collWPs.length; iSibling++ ){
var siblingWebPart = collWPs[iSibling];
if ( siblingWebPart.scrollWidth > detectWPZDict[dictIndex].fixedWidth ) {
detectWPZDict[dictIndex].fixedWidth = siblingWebPart.scrollWidth;
}
}
clearInterval(myInt);
}
bFirstInt = false;
},756);
};
fxAppendDetectWPZScript();
</script>