我的网站在Chrome、Firefox和Internet Explorer 8上运行良好.但在Internet Explorer 9上,当鼠标悬停在组件上时,会触发非常奇怪的错误.

SCRIPT5007:无法获取属性"ui"的值:对象为null或未定义

下面的javascript错误链接向我展示了以下代码:

onNodeOver:function(B,A){A.ui.onOver(B)},onNodeOut:function(B,A){A.ui.onOut(B)}

对于如何着手解决这个错误,我有点摸不着头脑. 我看过this种解决方案,但这并不能解决我的问题.

有什么主意吗?

推荐答案

许多JavaScript库(尤其是非最新的库)不能很好地处理IE9,因为它在处理很多事情时与IE8发生了冲突.

嗅探IE的JS代码在IE9中会非常频繁地失败,除非这种代码被重写以专门处理IE9.

在更新JS代码之前,您应该使用"X-UA-Compatible"元标记强制您的网页进入IE8模式.

EDIT:人不敢相信,3年后,我们进入了IE11,但仍然有人支持这一点.:-)许多JS库现在至少应该在本机上支持IE9,大多数都支持IE10,所以现在不太可能需要meta标记,除非你不打算升级JS库.但请注意,IE10改变了跨域脚本和一些基于CDN的库代码中断.判断你的库版本.例如,CDN上的Dojo 1.9将在IE10上崩溃,但1.9.1解决了这个问题.

你现在需要集中精力.我们现在是在2014年年中!!!我正在为此争取STILL张选票!修改你的网站,摆脱旧的IE硬编码依赖!

叹气如果我知道这将是目前为止我最流行的答案,我可能会花更多的时间来润色它...

EDIT 3:.现在快到2016年了.投票仍在上升...我猜有lots个遗留代码...总有一天我们的节目会比我们精彩...

Asp.net相关问答推荐

IISExpress未在ARM64 Mac/.NET 4.8上启动

如何使用 Get-Process powershell 命令通过端口号获取进程的 ID

内容根路径在 .NET 6 中如何工作?

ASP.NET 核心中的 Request.CreateResponse

加载特定 UpdatePanel 后如何调用客户端 javascript 函数

由于缺少定义,在 .net Core 应用程序上构建失败

返回值使用 String result=Command.ExecuteScalar() 结果返回 null 时发生错误

在 IIS 上托管 ASP.NET 5 项目

ASP.NET MVC 5 中的路由可选参数

判断邮箱地址是否对 System.Net.Mail.MailAddress 有效

在 asp.net 中为动态 PDF 指定文件名

使用 Asp.Net MVC 和 Web Api 配置 Ninject

Owin.IAppBuilder不包含MapSignalR的定义

如何从 NuGet 安装 EntityFramework 5.0(和其他旧版本)?

MVC 4 - Razor - 将变量传递到 href url

如何在 ASP.NET 中获取原始请求正文?

如何在 ASP.NET 中通过 LAN 访问您的网站

什么时候应该使用 Response.Redirect(url, true)?

将字典绑定到中继器

如何加密 web.config 中的一项