【问题标题】:How not to load a script in IE?如何不在 IE 中加载脚本?
【发布时间】:2011-07-27 04:24:58
【问题描述】:

可以在带有条件 cmets 的 IE 中加载脚本

<!--[if lte IE 7]>
    <script type="text/javascript" src="somescript.js"></script>
<![endif]-->

但是如果我不想想在 IE lte 7 中加载它(但在所有其他浏览器中仍然需要它)怎么办?

有什么简单的解决办法吗?

附:我在使用 SyntaxHighlighter 时遇到了问题 - 太多代码会降低 IE7 的速度,而且由于时间紧迫,我决定暂时在 IE7 中将其关闭。

【问题讨论】:

  • 您是使用服务器端语言生成页面,还是直接使用 HTML?

标签: javascript internet-explorer conditional-comments


【解决方案1】:

This post 表示您可以使用!(NOT)运算符,例如[if !IE]

【讨论】:

  • 2014 年的问候!出于某种原因,[if !IE] 似乎对我不起作用。有人指点吗?
【解决方案2】:
<!--[if gte IE 7]>
    <script type="text/javascript" src="somescript.js"></script>
<![endif]-->
<!--[if !IE]>
    <script type="text/javascript" src="somescript.js"></script>
<![endif]-->

【讨论】:

  • 这不是只适用于大于 7 的 IE 版本吗? Firefox 会将整个内容视为评论。
  • 这是一个很好的观点,更新了下层显示的条件。
【解决方案3】:

您可以尝试检测浏览器服务器端,然后回显包含的相应脚本。

下面有一个简单的PHP浏览器检测示例:

http://www.php-scripts.com/20050912/12/

【讨论】:

    【解决方案4】:
    <![if !IE]>
        <script type="text/javascript" src="somescript.js"></script>
    <![endif]>
    

    【讨论】:

    • 我不认为这是有效的代码。条件 cmets 不总是像常规 cmets () 一样开始和结束吗?在此示例中:
    • 这是down-level revealed comment,适用于所有浏览器。
    【解决方案5】:

    这种语法效果很好(脚本在firefox、chrome等中不会被注释):

    <!--[if !IE]><!-->
    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
    <!--<![endif]-->
    

    【讨论】:

      【解决方案6】:

      我使用了此处和其他地方显示的示例,看到这个代码示例有多少地方搞砸了,真是令人沮丧。原来答案很简单,IE 有特殊的“条件”,例如 [if IE],但其他浏览器需要 cmets 才能使用“条件”。

      例如,由于 JQuery 2 不适用于 IE8,你可以这样做

      <!--[if IE ]>  (following is only visible to IE)
          <script src="./js/lib/jquery-1.6.1.min.js"></script>
      <![endif]-->
      <!--[if !IE]>-->  (extra comment - only visible to non-IE)
          <script src="./js/lib/jquery-2.1.1.min.js"></script>
          <script src="./js/lib/jquery.mobile-1.4.5.min.js"></script>
      <!--<![endif]-->
      

      我已在 Firefox、Chrome、IE8、Dolphin 移动版和 Chrome 移动版中验证了上述工作。您还可以指定版本。例如,小于 IE 9 将是:&lt;!--[if lt IE 9 ]&gt;

      详细解释请查看http://www.sitepoint.com/web-foundations/internet-explorer-conditional-comments/

      【讨论】:

        【解决方案7】:

        由于条件语句不能在 IE (10,11) 中运行,并且 Microsoft 仅支持 IE(11),如果有人仍在查看运行 IE 特定的 JavaScript,那么此代码仍然可以在 IE(11) 中进行测试,并且非 IE 浏览器(Chrome、Firefox、Edge)。

        <script type="text/javascript">
            if(/MSIE \d|Trident.*rv:/.test(navigator.userAgent)) 
                {document.write('<script src="../nolng/js/ex1IE.js"><\/script>');}
            else 
                {document.write('<script src="../nolng/js/ex1.js"><\/script>'); // for Chrome,Firefox,Edge}
        </script>
        

        【讨论】:

          猜你喜欢
          • 2015-07-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多