Summit 7 Team Blogs

Know your Office 365 and SharePoint 2016 _spPageContextInfo

As I've worked with SharePoint over the past several years, more specifically the client side development aspect of it, one component of JavaScript Object Model that I can't live without is the _spPageContextInfo object. It is available within every SharePoint page after the SharePoint Client Context object has been loaded. The _spPageContextInfo object has been available since SharePoint 2010 and has grown since then to include the following attributes.  

  SP2010 SP2013 SP2016 O365 O365 w/ SP Framework Example
alertsEnabled X X X X X true
allowSilverlightPrompt X X X X X "True"
clientServerTimeDelta   X X X -332
cdnPrefix         X
CorrelationId         X 838295cd-201d-3aaa-3636-8cce395479ae
crossDomainPhotosEnabled   X X X X false
currentCultureName   X X X X "en-US"
currentLanguage X X X X X 1033
currentUICultureName   X X X X "en-US"
env       X X "Prod"
ExpFeatures X [ -1935704048, 1880353600, 1561415744, 33620252, 320014136, -1798548608, 12582919, 57158685, 4785188, -2046689280, 1049488, -536678120, -134118912, 1098973635, 2159492, 1879965696, -702520078, -535095679, 16928863, 0, 0, 268435456, -2145386494, 16777222, 0, 8, 0, 0, 0, 0, 0, 5888, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32768 ]
farmLabel X US_5_Content
fid X 16214
groupAlias X null
groupColor X null
groupId X null
groupType X null
hasManagedWebPermissions X X X true
hideSyncButtonOnODB X FALSE
isAppWeb X X X true
isNoScriptEnabled X FALSE
isSiteAdmin X X X true
killSwitches X {"F8FF3F1E-AB40-4AE1-7BB9-8BB67172EB53", true,
"0DD76D5B-35B6-42D0-AB40-7DDED9F09F98", true,
"3C70F5DC-8D7E-4DAB-B53C-07A9C3E8D7C8", true,
"E589C138-7DD8-42D0-4DAB-EBC92D395B94", true,
"639A0731-C514-42BC-84ED-8BB67172EB53", true,
"4D64EB0F-E71C-42D0-42BC-6B47CA92386E", true,
"343B4477-F7AC-4143-A26A-559457481FBD", true,
"88D8F6DE-F224-4D94-B53C-EBC92D395B94", true,
"4D64EB0F-5309-42D0-8010-559457481FBD", true}
layoutsUrl X X X X "_layouts/15"
listBaseTemplate X -1
listId X
listPermsMask X null
listTitle X null
listUrl X
navigationInfo X null
nid X 125
openInClient X FALSE
pageItemId X X X X X 10
pageListId X X X X X "{2c3b629a-ea6a-4b50-bd00-9686d627941d}"
pagePersonalizationScope X X X X 1
ProfileUrl X X ""
serverRequestPath X X X X "/Pages/default.aspx"
serverTime X 2016-05-13T14:00:55.7911099Z
showNGSCDialogForSyncOnODB X FALSE
siteAbsoluteUrl X X X X "http://cribtososp16a01"
siteClientTag X X X X "43$$16.0.4327.1000"
siteId X {a873bec2-11fc-4952-8301-c90abc09767d}
siteServerRelativeUrl X X X X X "/sites/sitesandbox"
siteSubscriptionId X f59e3cb7-4bff-4aed-91a0-3a11c07128e8
systemUserKey X X X X S-1-0-0
tenantAppVersion X X X X "3904492014"
themeCacheToken X X X "/sites/sandboxsite::0:16.0.5124.1208"
themedCssFolderUrl X X X "/_catalogs/theme/Themed/7FA80357"
themedImageFileNames X X X [object Object]
updateFormDigestPageLoaded X X "Wed Apr 27 2016 19:20:30 GMT+0000 (Coordinated Universal Time)"
userDisplayName X John Smith
userId X X X X X 1073746825
userLoginName X X X "" or  "cribtoso\testuser"
viewId X
webAbsoluteUrl X X X X "http://cribtososp16a01/sites/sandboxsite"
webId X {0f93846b-2c35-483b-abb4-ecab385ec2c2c}
webLanguage X X X X X 1033
webLogoUrl X X X X "_layouts/15/images/siteicon.png"
webPermMasks X X X X [object Object]
webServerRelativeUrl X X X X X "/sites/sandboxsite"
webTemplate X X X X "53"
webTitle X X X X "Cribtoso SP Sandbox Site"
webUIVersion X X X X X 15

Once you start using the _spPageContextInfo object on a regular basis, you'll wonder how you lived without it before.Looking at the table, you'll notice some new items for SharePoint 2016 and Office 365. Items like the userLoginName, the ProfileUrl, and the env property will be super helpful given the emphasis that SharePoint 2016 has made on hybrid environments. Microsoft is constantly updating the Office 365 environment with a specific focus on enhancing the personalized experience for users through their profile sites in the cloud. Having the ProfileUrl at your fingertips, provided by SharePoint, will always keep you pointing at the latest updated profile experience regardless of whether the page is in the cloud or on premise.