有没有办法在不同的浏览器上显示不同的网站?

时间:2017-03-05 16:56:38

标签: html twitter-bootstrap bootstrap-4 twitter-bootstrap-4

我一直在练习使用bootstrap 4,因为你可能知道bootstrap 4现在不支持Internet Explorer 8。这可能会成为一个问题,所以我想知道我是否可以在Internet Explorer 8上显示不同的网站,或者是否有办法在不同的浏览器上更改某些内容。

2 个答案:

答案 0 :(得分:0)

您可以尝试使用首选的服务器端语言检测User-Agent,也可以通过navigator.userAgent属性使用JavaScript。

然而,仅为IE8维护您网站的整个副本似乎有点矫枉过正 - 实际上,我甚至不建议为支持IE8付出额外的努力。但是,对于一般用途,这里有如何定位不同的IE版本并处理不支持的功能:

检测IE

幸运的是,IE支持conditional comments,因此您可以根据IE版本使用这些资源来包含不同的资源:

<!--[if lt IE 9]>
    <link rel="stylesheet" href="url/to/ie8/stylesheet">
<!--<![endif]-->
<!--[if gt IE 8]><!-->
    <link rel="stylesheet" href="url/to/bootstrap">
<!--<![endif]-->

如果仔细观察,可以看到最后一个[if ...]语句立即关闭,其内容未嵌入评论中。由于只有IE理解条件评论,其他浏览器才会忽略它并在最后if(实际上未被注释掉的那个)中呈现您的内容。 语法相当丑陋,但它是仅针对IE版本的最简单方法。

检查缺少的功能

如果您需要确保您在网站上使用的代码适用于所有浏览器,则只需简单地列出您将要使用的浏览器功能列表,并检查它们是否可用尝试为每个古怪的浏览器制作不同的版本。看看feature detectionpolyfills的想法,它们可能是未来解决此问题的更好方法。

希望这有帮助!

答案 1 :(得分:-2)

实际上是的!但是有一些方法:

1. if browser = opera(example) (check user agent)=> redirect to other website(other page or host!)

2. if browser = opera => render other template 

见:

//check is IE :
 if (preg_match('/MSIE\s(?P<v>\d+)/i', @$_SERVER['HTTP_USER_AGENT'], $B) && $B['v'] <= 8) {
    // Browsers IE 8 and below
} else {
    // All other browsers
}