![](/img/trans.png)
[英]safari ReferenceError: Can't find variable changestyledisplayblock
[英]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.