【问题标题】:Hide scripts from semi-old browsers隐藏半旧浏览器的脚本
【发布时间】:2014-03-09 14:18:46
【问题描述】:

所以我仍然可以使用 HTML cmets 从不知道脚本标签的浏览器中隐藏 javascript,很好。

但是什么是阻止半旧浏览器尝试执行他们不理解的代码的最干净的方法,从而导致成群的脚本错误。我想这是一个更大的问题,因为总是添加新功能。此外,使用半旧浏览器的可能性更大。

【问题讨论】:

  • @plalx:不,我的意思是对那些认为、他理解并吐出语法错误和未定义错误的浏览器隐藏脚本。这就是为什么我说半老。它支持旧版本的 JavaScript。
  • 最好的方法是特征检测。如果是新语法,您通常可以使用try..catch 检测支持。

标签: javascript html backwards-compatibility


【解决方案1】:

答案是特征检测。 基本前提是您在执行代码之前检查您要使用的任何功能是否存在。作为一个非常简单的示例,让我们看一下警报功能。您的代码如下所示

if (alert){
    //do something
}
else{
    //no alert avaliable
} 

当然,警报是您不太可能在生产中使用的东西,因此不太可能进行测试。但是,这个基本思想可以用于大多数情况。

对于适用于所有功能的简单实现,我建议您查看modernizer(modernizr.com)。但是,在某些情况下,这可能是矫枉过正。

【讨论】:

    【解决方案2】:

    您能否提供您要检查的浏览器。对于 IE,您可以使用 Conditional comment 检查浏览器版本。即,

    <!--[if gte IE 7]>
    <script>
      alert("Congratulations! You are running Internet Explorer 7 or a later version of Internet Explorer.");
    </script>
    <p>Thank you for closing the message box.</p>
    <![endif]-->
    

    您可以使用导航器检查浏览器的版本并运行所需的功能。

    【讨论】:

    • 这取决于您的要求。但是我们可以编写像this 这样的poly-fills
    • 这仅适用于资源管理器浏览器,不适用于其他供应商的浏览器。您应该考虑删除您的答案,因为它根本不是一个好的答案,并且可能会误导读者。
    猜你喜欢
    • 1970-01-01
    • 2013-12-30
    • 1970-01-01
    • 1970-01-01
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-11
    相关资源
    最近更新 更多