繁体   English   中英

ReferenceError:找不到变量:Safari中的ValidatorEnable

[英]ReferenceError: Can't find variable: ValidatorEnable in Safari

我正在开发一个包含JavaScript的ASP.NET应用程序,以动态启用或禁用页面上的验证器。 在ASP.NET中,应用程序提供了一个Web资源,其中包括用于此目的的JavaScript函数,例如ValidatorEnable()。 当我在Mac上的Safari上运行我们的应用程序时,出现了无法找到ValidatorEnable的错误。 这是我们在jQuery(document).ready()回调函数中调用的函数,因此可以预期的是,此时所有资源都可用。 在调试器中进行检查后发现,该资源从未交付给客户端浏览器。

有人看过类似的东西吗? 在Windows上的IE,Chrome或Firefox上不会发生此问题,在Mac上的Chrome或Firefox上也不会发生此问题。 Safari似乎是无法正确接收或处理ASP.NET JavaScript验证程序功能的一种。

提前致谢!

我已经发布了有关ASP.NET 2.0浏览器识别功能的博客文章 基本上,从7.1开始,Chrome的浏览器版本字符串中会有冲突。 Asp.Net认为您运行的是不支持最新javascript的Safari浏览器的旧版本。 通过更改web.config的<browserCaps>元素,可以匹配较新的版本并分配正确的功能。

 <configuration> <system.web> <browserCaps> <filter> <case match="AppleWebKit/600">EcmaScriptVersion = 1.5 supportsCallback = true </case> <case match="AppleWebKit/601">EcmaScriptVersion = 1.5 supportsCallback = true </case> <case match="AppleWebKit/602">EcmaScriptVersion = 1.5 supportsCallback = true </case> <!-- Speculative futureproofing could do this? <case match="AppleWebKit/603">EcmaScriptVersion = 1.5 supportsCallback = true </case> <case match="AppleWebKit/610">EcmaScriptVersion = 1.5 supportsCallback = true </case> <case match="AppleWebKit/650">EcmaScriptVersion = 1.5 supportsCallback = true </case> --> </filter> </browserCaps> </system.web> </configuration> 

还有其他修复方法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM