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

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

为什么在 ASP 中使用 ScriptManager 和 JavaScript 关闭 RadWindow 时会抛出 Error: Unable to get property '_ScriptLoaderTask' of undefined or null referece(Internet Explorer 11)

我们的应用程序有 'Save and Close' 个按钮,这些按钮具有以下 C# 代码,用于保存完成后执行的关闭逻辑:

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

.aspx页面有以下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;
}

在调用 RadWindow .close() 函数之前添加 setTimeout() 一秒钟似乎可以解决问题。我相信这允许 ScriptManager.RegisterStartupScript 有足够的时间来完成执行。

以下 JavaScript 是问题的解决方案,并阻止错误模式显示 post 'Save and Close' 按钮单击:

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