Dav*_*man 2 javascript asp.net safari validation resources
我正在开发一个ASP.NET应用程序,其中包含JavaScript以动态启用或禁用页面上的验证程序.在ASP.NET中,随应用程序提供了一个Web资源,其中包含用于此目的的JavaScript函数,例如ValidatorEnable().当我在Mac上的Safari上运行我们的应用程序时,我收到的错误是找不到ValidatorEnable.这是我们在jQuery(document).ready()回调函数中调用的函数,因此期望此时所有资源都可用.在调试器中检查显示资源从未传递到客户端浏览器.
以前有人见过这样的东西吗?Windows上的IE,Chrome或Firefox上不会出现此问题,Mac上的Chrome或Firefox也不会出现此问题.Safari似乎是未正确接收或处理ASP.NET JavaScript验证器功能的Safari.
提前致谢!
小智 5
我发布了一篇关于ASP.NET 2.0浏览器识别功能的博客文章.基本上,从7.1开始,chrome的浏览器版本字符串中存在冲突.Asp.Net认为您运行的旧版Safari浏览器不支持最近的JavaScript.通过更改<browserCaps>web.config 的元素,您可以匹配较新的版本并分配正确的功能.
<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>Run Code Online (Sandbox Code Playgroud)
还有其他修复方法.
| 归档时间: |
|
| 查看次数: |
1424 次 |
| 最近记录: |