0

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

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

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

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

我可以在 Firefox 中直接打开文件夹,然后一切正常。

有任何想法吗?

4

2 回答 2

3

您使用的是旧版 IE 浏览器吗?IE6 或 IE7 不支持 indexOf 方法(尽管 canvas 也不支持)

于 2012-10-31T06:31:00.743 回答
2

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

默认情况下,本地主机恰好是本地 Intranet。这可能是为什么在从 Visual Studio 进行 F5 调试时,尽管使用 IE9,但没有任何较新的 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>
于 2012-11-08T20:27:48.963 回答