asp.net脚本注册-即使在使用if条件的情况下,Sys也未定义

|| 在我的应用程序中,更多页面上都装有脚本管理器,因此依赖于它们的脚本被加载,但是在某些静态页面中,由于没有使用Asp.net ajax的任何功能,因此脚本管理器不存在。 但是即使我像下面那样注册我的客户端脚本,我也会收到“ 0”错误,为什么是 这么。
if(Sys){
   Sys.Application.add_init(registerMyLibrary);
}
我也在下面尝试过,但是上面的代码本身抛出错误时的用途是什么
if(Sys !== \'undefined\'){
  //register my library
}
我还有其他方法可以注册我的库而不会出错吗?     
已邀请:
这是因为尚未在全局对象或任何阴影上下文中分配它(
Sys
),这可能是(更大可能是)另一个问题。 无论如何,
if (window.Sys) { ... }
将按预期工作。 问题在于
Sys
的查找解析失败,而JavaScript引发了不错的错误(这就是为什么带有
!==
的后一种形式也失败)的原因。如上所示,当尝试显式访问“ 7”对象的属性时,这不是问题。
window
是浏览器中JavaScript的全局对象。
window.Sys !== undefined
变体也可以使用,但我不喜欢它。另一个选择是
typeof Sys != \"undefined\"
,但我更不喜欢这个。 (之所以起作用,是因为
typeof
是一个特殊的运算符,如果查找未能选择返回\“ undefined \”(字符串),则不会引发异常。) 快乐的编码。     

要回复问题请先登录注册