我正在通过“window.showModalDialog(...”显示一个模式对话框,这发生在一个 vbscript 函数中(显示的页面是 aspx)。我想根据 a 中的行数调整窗口大小数据表回来了。所以我很自然地去注册一个根据行数调整窗口大小的启动脚本。好吧,那没有用,所以我尝试注册一个只显示 msgbox 的脚本。
代码看起来像(在 OnLoad 事件处理程序中):
if (!this.ClientScript.IsStartupScriptRegistered(typeof(MyPageClassName), "hello"))
{
this.ClientScript.RegisterStartupScript(typeof(MyPageClassName), "hello",
@"<script language=vbscript>
sub fnWindowOnLoad()
MsgBox ""hello""
end sub
<script>", false);
}
if (!this.ClientScript.IsStartupScriptRegistered(typeof(MyPageClassName), "hello"))
{
throw new Exception("Failed to load script");
}
在我看来,这应该可以工作,并在页面加载时显示一个消息框,上面写着“你好”(我已将窗口的 onload 事件设置为 fnWindowOnLoad)。但所发生的一切都没有,没有例外,没有警觉。我已经尝试了 typeof 调用中我能想到的所有类型。似乎没有任何效果。我唯一能想到的是,由于对话框是模态 ClientScript.RegisterStartupScript 将无法正常运行。但这对我来说没有任何意义。
我将 MsgBox “hello” 调用直接放入我的脚本块并显示警报,所以这是可能的。但我需要修改后面代码中的一些参数,所以我必须使用 RegisterStartupScript。