ReferenceError:Can't在Safari中查找变量:ValidatorEnable
ReferenceError: Can't find variable: ValidatorEnable in Safari
我正在开发一个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验证程序函数。
提前感谢!
我发布了一篇关于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>
还有其他修复方法。
相关文章:
- 正在全局范围中查找JavaScript函数
- Javascript(Angular)从一个对象数组到第二个数组查找值
- 在Safari执行javascript之前对其进行修改
- 在不使用jquery的情况下查找页面中的所有锚点并附加函数
- es6 相当于下划线查找位置
- Safari(Mac OS)上的jQuery平滑滚动问题
- 在DOM中查找一个模式并替换它's的内容使用jquery
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 如何在不传递此信息的情况下查找被调用的元素
- Lodash 从值数组中查找数组中的值
- 如何使用JavaScript查找1和N之间的所有数字的总和
- 使用RegExp查找url中的字符
- $(document).height()在刷新时随机化值(Safari 5.1.10)
- 查找元素高度,包括边距
- 使用JS查找数组的平均值
- 查找最短和最长日期
- 猫鼬在特定记录中查找嵌套记录
- 使用javascript在MVC中查找网格长度时出错
- ReferenceError:Can't在Safari中查找变量:ValidatorEnable
- 在Safari上通过地理位置查找当前位置