外部JS文件找不到控件,但可以使用quickwatch

External JS file not finding controls, but work with quickwatch

本文关键字:可以使 quickwatch 控件 JS 文件 找不到 外部      更新时间:2023-09-26

我的aspx文件中有以下代码:

var blah = "<%= lblErrorsMain.ClientID %>"

这是外部js文件:

function ShowShowScans2() {
    oWebDialogWindow2 =  document.getElementById(blah);
    oWebDialogWindow2.set_windowState($IG.DialogWindowState.Normal);
    return false;
}

当代码运行时,它总是在oWebDialogWindow2.set_windowState($IG.DialogWindowState.Normal)处弹出Microsoft JScript运行时错误:无法获取属性"set_windowState'"的值:对象为null或未定义。当我进入代码并将鼠标悬停在oWebDialogWindow2上时,它为null。但是,当我打开一个快速观察窗口并执行document.getElementById(等等)时,我可以访问该对象。发生了什么事?

您应该在变量的声明和赋值中使用'document.getElementById'。

如果您在"FormView"中:

var blah = document.getElementById('<%= FormView1.FindControl("lblErrorsMain").ClientID %>');

另一种方式如下:

var blah = document.getElementById('<%= lblErrorsMain.ClientID %>');