Monday, 11 September 2017

Cannot Read Property 'Showmodaldialog' of undefined

While working with SharePoint / JavaScript modal pop up you might encounter error "cannot read property 'showmodaldialog' of undefined". Here is simple solution for that.

Code Sample:

function OpenDocsDialog(url1) {
    var options = {
        url: url1,
        dialogReturnValueCallback: myDialogCallback
    };
        SP.UI.ModalDialog.showModalDialog(options);  // this line gives error.
}


Solution :  We need to load "sp.js" file before calling above code. You can load "sp.js" file with below code sample:

ExecuteOrDelayUntilScriptLoaded(function () { //code }, "sp.js")

Full solutionExample :

function OpenDocsDialog(url1) {
    var options = {
        url: url1,
        dialogReturnValueCallback: myDialogCallback
    };

    ExecuteOrDelayUntilScriptLoaded(function () {
        SP.UI.ModalDialog.showModalDialog(options);
    }, "sp.js")
}