如果浏览器是ie8或更低版本,避免加载整个页面

Avoid load entire page if browser is IE 8 or lower

本文关键字:加载 版本 浏览器 ie8 如果      更新时间:2023-09-26

我有一个网页的问题,在这一刻,我正在验证浏览器的版本像这样:

<!--[if lte IE 9]>
<div id="ie-compatibility">
   <h1>Your browser is out of date</h1>
</div>
<![endif]-->

那是有效的,但是整个页面被加载(js库,样式表,其他div等…),有一种方法不加载整个页面时的条件存在?我只是想显示一个消息和一些图像,没有更多关于我的ie兼容性(作为额外的数据,我在我的项目中使用AngularJS)。

谢谢提前。

我不是一个Angular开发者,但是在IE版本上做一个快速的JS检查(参见在没有库的JavaScript中检查IE小于9的最佳方法),并采取相应的行动。

如果您想立即终止页面加载,请使用document.execCommand('Stop');。否则,您可以简单地从dom中抓取并删除您不想加载的元素,如果您设法在加载中尽早插入(当然,这取决于http请求的数量和大小,这可能不是超级高效)。

在任何加载外部内容的元素之前插入这个元素都应该这样做。

<!--[if lte IE 9]>
    <script type="text/jscript">
        document.write(String.fromCharCode(60,33,45,45,32))
    </script>
<![endif]-->

你甚至可以把h1警告放在script标签之前。

请注意您当前的状态(lte IE 9)包括IE 9 &下面,不是8 &在下面。你可能只需要lt IE 9

你也可以反转逻辑,跳过旧浏览器的标题:

<!--[if gte IE 9]-->
    … external style and script content …
<!--[endif]-->

如果你使用的是jQuery,你可以在这个条件中写一个脚本来删除默认的html并添加你的新html:

<!--[if lte IE 9]>
<script>
    $('body').empty().append([*new html*])
</script>
<![endif]-->