php - IE 的条件标签 - 如果浏览器是 IE,是否可以不加载 JS 文件?

标签 php javascript internet-explorer internet-explorer-8

这可能听起来很奇怪,但我不想在用户使用 IE 8 时添加其他文件,而是想删除通常在所有其他浏览器中加载的 JS 文件。

再说一遍。

我的脑子里有这个:

<script type="text/javascript" async src="my-script.js"></script>

我希望该脚本能够在除 IE 之外的所有浏览器中运行(因为它不起作用,所以我不想加载它)。

我知道像这样的常见条件标签

<!--[if lt IE 9]>
<![endif]-->

但我想没有办法以相反的方式使用它们,所以我想到的唯一解决方案是......

<?php if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') == FALSE) { ?>
      <script type="text/javascript" async src="my-script.js"></script>
<?php } ?>

这是执行此操作的最佳解决方案吗?而且我实际上需要测试 9 以下的所有 IE 版本。所以我不希望 JS 文件在 IE8、IE7 和 IE6 中加载。

提前谢谢您。

最佳答案

除 IE 之外的所有版本

<!--[if !IE]> -->
<script type="text/javascript" async src="my-script.js"></script>
<!-- <![endif]-->

仅限 IE 9 及更高版本

<!--[if gt IE 8]>
<script type="text/javascript" async src="my-script.js"></script>
<![endif]-->

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

IE 9 及更高版本 + 其他浏览器

理论上,您可以使用 OR 运算符,但 NOT IE 注释样式不支持此操作。

<!--[if !(IE)|(gte IE 9)]>
Test
<![endif]-->

您还可以像这样使用嵌套注释:

<!--[if !IE]><![if gte IE 9]>-->
Test
<!--<![endif]><![endif]-->

More information

关于php - IE 的条件标签 - 如果浏览器是 IE,是否可以不加载 JS 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12673404/

相关文章:

javascript - 使用 flatMap 链接可观察量

javascript - Google Closure 和生成的 getters/setters

asp.net - Web 分析和 IE 标准模式

JavaScript 代码无法正常工作

php - 错误 fetchAll(PDO::FETCH_ASSOC)

php - Fancybox - 无法在 iframe 中打开类似 facebook 的框

php - MySQL INNER JOIN IN 没有得到正确的结果

javascript - 想要生成带有猫头鹰图像的轮播

javascript - 如何更改 javascript 警报按钮的样式?

delphi - WebBrowser (MSIE) - 使用 IOleCommandTarget 的 Exec 捕获 JS 错误