javascriptc#asp.nettelerikscriptmanager

Error: Unable to get property '_ScriptLoaderTask' of undefined or null reference


Why does Error: Unable to get property '_ScriptLoaderTask' of undefined or null referece get thrown when trying to close a RadWindow with ScriptManager and JavaScript in ASP? (Internet Explorer 11)

Our application has 'Save and Close' buttons that have the following C# code for the closing logic that is executed after the save has completed:

public void CloseWindow()
{
    ScriptManager.RegisterStartupScript(this, this.GetType(), "close", 
        "CloseModal()", true);
}

The .aspx page has the following JavaScript:

function CloseModal() {
    var oWnd = GetRadWindow();
    if (oWnd) {
        oWnd.close();
    }
}

function GetRadWindow() {
    var oWindow = null;
    if (window.radWindow) {
        oWindow = window.radWindow;
    } else if (window.frameElement &&
        window.frameElement.radWindow) {
        oWindow = window.frameElement.radWindow;
    }
    return oWindow;
}

Solution

  • Adding setTimeout() for one second before the RadWindow .close() function is called seems to fix the issue. I believe this allows the ScriptManager.RegisterStartupScript just enough time to complete execution.

    The following JavaScript is a solution to the problem, and stops the error modal from displaying post 'Save and Close' button click:

    function CloseModal() {
        var oWnd = GetRadWindow();
        if (oWnd) {
            setTimeout(function () {
                oWnd.close();
            }, 1000);
        }
     }