Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何不在IE中加载脚本?_Javascript_Internet Explorer_Conditional Comments - Fatal编程技术网

Javascript 如何不在IE中加载脚本?

Javascript 如何不在IE中加载脚本?,javascript,internet-explorer,conditional-comments,Javascript,Internet Explorer,Conditional Comments,只能在IE中加载带有条件注释的脚本 <!--[if lte IE 7]> <script type="text/javascript" src="somescript.js"></script> <![endif]--> 但是如果我不想在IE lte 7中加载它(但在所有其他浏览器中仍然需要它),该怎么办 有简单的解决方案吗 另外,我对SyntaxHighlighter有一个问题-太多的代码会减慢IE7的速度,由于时间不够,我决定暂时

只能在IE中加载带有条件注释的脚本

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

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

有简单的解决方案吗

另外,我对SyntaxHighlighter有一个问题-太多的代码会减慢IE7的速度,由于时间不够,我决定暂时在IE7中关闭它。

说你可以使用
(非)类运算符
[if!IE]


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

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

以下是PHP中简单浏览器检测的示例:


此语法效果良好(在firefox、chrome等浏览器中不会对脚本进行注释):


我使用了这里和其他地方显示的示例,看到这个代码示例有多少地方乱七八糟,真是令人沮丧。事实证明答案很简单,IE有特殊的“条件”,比如[if IE],但其他浏览器需要注释才能使用“条件”

例如,由于jQuery2不能与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]-->

(额外注释-仅对非IE可见)

我已经在Firefox、Chrome、IE8、Dolphin mobile和Chrome mobile中验证了上述工作。您还可以指定版本。例如,少于IE 9的代码是:
,因为条件语句在IE(10,11)中不起作用,而且只有IE(11)受Microsoft支持,如果有人仍在考虑运行IE特定的JavaScript,那么该代码仍然可以在IE(11)和非IE浏览器(Chrome、Firefox、Edge)中测试


if(/MSIE\d | Trident.*rv:/.test(navigator.userAgent))
{document.write(“”);}
其他的
{document.write(“”);//对于Chrome、Firefox、Edge}

您是在使用服务器端语言生成页面,还是直接使用HTML?这难道不是只适用于IE 7以上的版本吗?Firefox将把整个事情看作是一条评论。这是一个很好的观点,用一个低级的条件更新。我认为这不是有效的代码。条件注释不总是像常规注释()一样开始和结束吗?在本例中:这是一个,在所有浏览器中都有效。2014年的问候语!由于某种原因,
[if!IE]
似乎不适合我。有人给我指路吗?
<!--[if !IE]><!-->
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<!--<![endif]-->
<!--[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]-->
<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>