How To Open SharePoint Application Page In Modal Dialog (Popup) Using JavaScript

Sometimes, there is a requirement to open a SharePoint Application page as a popup with the new Modal Dialog Framework, which allows you to interact with the users in an unobtrusive way using just a few lines of JavaScript.

In real time projects, the requirements are you need to open internal or external pages inside an OOTB modal dialog of SharePoint 2013, as New Task Form, Custom Application page, or Upload File Form, and maybe you want to open the external pages and sites.

Basic syntax for SP Modal dialog box

  1. var value = SP.UI.ModalDialog.showModalDialog(options);  

 

The options to create the modal dialog.

Example 

  1. SP.UI.ModalDialog.showModalDialog(options);  
  2. var options = {  
  3.     title: " Title",  
  4.     width: 400,  
  5.     height: 600,  
  6.     url: "/_layouts/newform.aspx"  
  7. };  
  8. SP.UI.ModalDialog.showModalDialog(options);   

Explain

Options Property

Description

title

The title of the Modal dialog.

url

Page URL or HTML

html

A string that contains the HTML of the page that appears in the dialog.

width

Modal dialog page width. If the width is not specified it will take autosize as true.

height

Modal dialog page width. If the width is not specified it will take autosize as true.

allowMaximize

A Boolean value that specifies whether the dialog can be maximized or not. It is true if the Maximize button is shown; else false.

showClose

The Close button appears on the dialog and it’s a Boolean value

autoSize

Dialog size (true/false).

dialogReturnValueCallback

A function pointer that specifies the return callback function.

args

An object that contains the data, that is passed to the dialog.

Example 1 

  1. var options = {  
  2.     url: ‘https: //gowtham.sharepoint.com/teams/lists/gvr/newform.aspx’,  
  3.         title: ‘ModalDialog’,  
  4.     allowMaximize: false,  
  5.     showClose: true,  
  6.     width: 800,  
  7.     height: 330,  
  8.     dialogReturnValueCallback: Function.createDelegate(nullfunction(result, returnValue) {  
  9.         if (result == SP.UI.DialogResult.OK) {  
  10.             if (returnValue == null) {  
  11.                 SP.UI.Notify.addNotification('Operation successful');  
  12.                 SP.UI.ModalDialog.RefreshPage(SP.UI.DialogResult.OK);  
  13.             } else {  
  14.                 location.href = returnValue;  
  15.             }  
  16.         }  
  17.     })  
  18. };  
  19. SP.UI.ModalDialog.showModalDialog(options);   

Example 2

Sometimes, JS files do not load properly, so we have to load the files, as shown below.

  1. function openModelDialogPopup(strPageURL) {  
  2.     var dialogOptions = {  
  3.         url: ‘https: //gowtham.sharepoint.com/teams/lists/gvr/newform.aspx’,  
  4.             title: ‘ModalDialog’,  
  5.         allowMaximize: false,  
  6.         showClose: true,  
  7.         width: 800,  
  8.         height: 330  
  9.     };  
  10.     SP.SOD.execute('sp.ui.dialog.js''SP.UI.ModalDialog.showModalDialog', dialogOptions);  
  11.     return false;  
  12. }   

Example 3

Sometimes, when we close the Modal popup, we need to refresh the parent page, so try this code to refresh the parent page. 

  1. SP.UI.ModalDialog.showModalDialog({  
  2.             url: dialogUrl,  
  3.             allowMaximize: dialogAllowMaximize,  
  4.             showClose: dialogShowClose,  
  5.             width: dialogWidth,  
  6.             height: dialogHeight,  
  7.             title: dialogTitle,  
  8.             dialogReturnValueCallback: RefreshOnDialogClose //this value will refresh the Parent page.  
  9.         }   

Example 4

Sometimes, when we close the Modal popup, we need to refresh the parent page, so try this code to refresh the parent page. 

  1. var options = {  
  2.     url: dialogUrl,  
  3.     allowMaximize: dialogAllowMaximize,  
  4.     showClose: dialogShowClose,  
  5.     width: dialogWidth,  
  6.     height: dialogHeight,  
  7.     title: dialogTitle,  
  8.     dialogReturnValueCallback: function(dialogResult) {  
  9.         if (dialogResult != SP.UI.DialogResult.cancel) {  
  10.             //When you click OK this will happen  
  11.             SP.UI.ModalDialog.RefreshPage(dialogResult)  
  12.         }  
  13.     }  
  14. }   

I hope, you enjoyed the blog.

Ebook Download
View all
Learn
View all