Retrieve all Content type from app Host web using JSOM

In this blog I would like to share code to get the content type collection from APP host web in SharePoint Hosted app using JavaScript Object Model.

  1. var ctx;  
  2. var appCtxSite;  
  3. var contentTypeCollection;  
  4. var contentType;  
  5. var hostWebURL;  
  6. var appWebURL;  
  7. var contentTypeName;  
  8. var ContentTypeID;`  
  9. var ContentTypeEnumerator;  
  10.   
  11.   
  12. $(document).ready(function () {  
  13. // debugger;  
  14. //// Get the URI decoded URLs.  
  15. hostWebUrl = decodeURIComponent(manageQueryStringParameter('SPHostUrl'));  
  16. appWebUrl = decodeURIComponent(manageQueryStringParameter('SPAppWebUrl'));  
  17. //calling the getHostWeb method in ready function to get content type on when page is ready  
  18. getHostWeb();  
  19. });  
  20.   
  21.   
  22. //This function is used to get the hostweb url  
  23. function manageQueryStringParameter(paramToRetrieve)
  24. {  
  25.    var params = document.URL.split("?")[1].split("&");  
  26.    var strParams = "";  
  27.    for (var i = 0; i < params.length; i = i + 1) 
  28.    {  
  29.       var singleParam = params[i].split("=");  
  30.       if (singleParam[0] == paramToRetrieve) 
  31.       {  
  32.          return singleParam[1];  
  33.       }  
  34.    }  
  35. }  
  36.   
  37. //get the list data from host web  
  38. function getHostWeb() 
  39. {  
  40.    //get current app web context  
  41.    ctx = new SP.ClientContext(appWebUrl);  
  42.    //get current host web context  
  43.    appCtxSite = new SP.AppContextSite(ctx, hostWebUrl);  
  44.    //get current host web  
  45.    if (ctx != undefined && ctx != null)
  46.    {  
  47.       web = appCtxSite.get_web();  
  48.    }  
  49.    //// .load() tells CSOM to load the properties of this object  
  50.    ctx.load(web);  
  51.    ctx.executeQueryAsync(getContentTypeCollection, onQueryFailed);  
  52.   
  53.  
  54. function getContentTypeCollection() 
  55. {  
  56.    //Get all content types from current app host web  
  57.    contentTypeCollection = web.get_contentTypes();  
  58.    //load the content type collection  
  59.    ctx.load(contentTypeCollection);  
  60.    ctx.executeQueryAsync(getallContentType, onQueryFailed);  
  61. }  
  62.   
  63. function getallContentType() 
  64. {  
  65.    ContentTypeEnumerator = contentTypeCollection.getEnumerator();  
  66.    var count = contentTypeCollection.get_count();  
  67.    if (count > 0)
  68.    {  
  69.       //Get content type one by one  
  70.       while (ContentTypeEnumerator.moveNext())   
  71.       {  
  72.          contentType = ContentTypeEnumerator.get_current();  
  73.          contentTypeName = contentType.get_name();  
  74.          alert(contentTypeName);  
  75.       }  
  76.    }  
  77. }  
  78.   
  79. function onQueryFailed(sender, args) 
  80. {  
  81.    alert('Request failed. ' + args.get_message() + '\n' + args.get_stackTrace());  
  82. }  
Summary

In this blog we have explored how to get the all content types from SharePoint Hosted web using JavaScript Object Model.

Happy Coding