KineticJS和VS2012

时间:2012-10-30 21:13:38

标签: kineticjs

我在使用KineticJS的项目上工作了数周,没问题。就在几分钟前,当我构建和调试我的页面时,它开始抛出错误。

这是错误: /scripts/kinetic-v4.0.3.js第22栏第2258行未处理的异常

0x800a01b6 - Microsoft JScript运行时错误:对象不支持属性或方法'indexOf'

我不知道发生了什么,它发生在任何项目的KineticJS的任何页面上......

我可以在firefox中打开这个页面,然后将文件夹打开,并且可以正常工作。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

你正在使用旧的IE浏览器吗? IE6或IE7不支持indexOf方法(不过是canvas)

答案 1 :(得分:2)

微软最大的Internet Explorer客户群是企业。企业已经投入了无数美元和数小时为旧版本的IE创建内部网应用程序,这些应用程序将在更新/更符合标准的版本下破解。因此,对于在本地Intranet区域中检测到的网站,IE将默认为兼容模式,以使IE9的行为与IE7类似。

默认情况下,Localhost恰好是本地Intranet。这可能是为什么在使用IE9从Visual Studio进行F5调试时,没有一个较新的JavaScript对象和方法可用。

幸运的是,你可以做一些事情。应用程序开发人员最简单的方法是在页眉中包含一个元标记,告诉IE在呈现该页面时忽略兼容模式:

<meta http-equiv="X-UA-Compatible" content="IE=Edge" />

首选方法可能是让Web服务器在该Web应用程序的每个HTTP响应中都包含此标头。要么配置IIS来执行它,要么在web.config中包含以下内容(对于IIS7 +,我相信):

<system.webServer>
   <httpProtocol>
      <customHeaders>
         <remove name="X-UA-Compatible"/>
         <add name="X-UA-Compatible" value="IE=Edge" />
      </customHeaders>
   </httpProtocol>
</system.webServer>