Microsoft JScript 运行时错误: 'Sys' 未定义

学习了Ajax基本控件的使用后,练习通过客户端脚本显示或者隐藏进度信息的过程中,运行的时候总是提示Microsoft JScript 运行时错误: 'Sys' 未定义 。用这个信息到网上一查,有N多的解决方法,什么配置文件的问题啦,什么权限控制的问题啦,都没有解决我的问题,弄得郁闷了半天。

(注:XP-SP3,Vs2008—SP1,AjaxExtend1.0,项目是Web site with ASP.NET 2.0 AJAX Extensions 1.0 features enabled (.NET Framework 2.0))

 我的在之前的练习的时候都是正常运行的,根本就没有动过web.config配置文件的内容,需要加的那些配置内容都已经有,不然之前都不可能正常运行不是?搜索了很久了以后,网上有人提到是身份验证的问题,主要是Ajax封装的ScriptResource文件没有办法解析,仔细看看,好像是针对IIS的,我都还只是在练习而已嘞。查看原文:http://www.jcwcn.com/html01/Ajax/16_56_33_449.html

 经过了一番的摸索以后,终于使用一个颇为简单的办法解决了,原来是顺序的问题,代码奉上:(好像没有啥意义哈,别扔鸡蛋)

ContractedBlock.gif ExpandedBlockStart.gif Code
1  <script type="text/javascript" language="javascript">
2 function CancelAsyncPostBack() {
3  var prm = Sys.WebForms.PageRequestManager.getInstance();
4        if (prm.get_isInAsyncPostBack()) {
5              prm.abortPostBack();
6          }
7      }  
8 </script>

代码是很简单的,开始的时候我是紧跟着放在了<head>标签的后<Form>标签的前面,后来我看到vs提示错误的时候我忽略过去,script代码就被逐步的解析出来了,而且正常运行,就猜想会不会vs有专门设置不调试script的选项呢?在工具-选项-调试选项卡中发现有一个实时调试脚本选项,没有解决,紧接着,我选择了不调试直接运行,这下好了,vs不报错了,不过IE8开始替我捕捉了,问题依旧没有解决。 再次猜想,忽略了错误后依旧可以正常运行,那就是语句顺序的问题,我就把上段代码放到了</Form>的后面,结果可以正常运行了,没有报错!good

验证发现只要是讲脚本放到<Form>标签后面就可以了, 另外脚本的引用也是必须这样放置。 原因的话我像应该是sys由scriptmanage代码,必须要放在服务器端运行。具体机制尚不清楚,有谁知道的话请指教。

作者: xiaoxia
出处: http://cnblogs.com/xiaoxia
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明.

 

转载于:https://www.cnblogs.com/xiaoxia/archive/2009/10/30/1592799.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值