2013-04-08 28 views
0

我有一个简单的HTML登录表单,其中我只想用Internet Explorer将其显示给用户(根据现有设计,显然不是通过选择),并在任何其他浏览器访问时显示错误消息。使用“if IE”条件注释来控制显示内容是否错误?

我的问题是,在身体中使用<!--[if IE]>标记来判断要显示的内容有多糟?使用它有什么缺点吗?

的login.html

<html> 
<head> 
    ... 
</head> 
<body> 

    <!--[if IE]> 
    <form> 
     ... 
    </form> 
    <![endif]--> 

    <![if !IE]> 
    This site can only be accessed via Internet Explorer 
    <![endif]--> 

</body> 
</html> 

我清楚地知道我可以使用JavaScript,CSS或服务器端的东西来执行这一点,但我想改变的代码和设计尽可能少,实际上对上述方法的缺点非常好奇。

回答

3

根据MSDN,有条件的注释不会在标准模式下支持作为IE 10的

http://msdn.microsoft.com/en-us/library/ms537512(v=vs.85).aspx

这就是说,如果你支持,你需要通过他们去为它的浏览器。但是,如果他们在未来逐步取消,不要感到惊讶。

此外,您的语法是错误的非IE评论。应该是两个注释,以便其他浏览器正确处理它。

<!--[if !IE]--> 
    This site can only be accessed via Internet Explorer 
<!--[endif]--> 
+0

实际上,通过您建议的编辑方式,它在Chrome(v24)中无法使用,但我的代码确实可行,但我无法解释它,因为您的语法显然看起来更正确。 – 2013-04-08 23:53:15

+0

对于IE10来说,这很好,在浏览器中查看它需要很长时间。 – 2013-04-08 23:53:40

+0

+1。 – Markasoftware 2013-04-09 23:31:05

0

在我看来,只要:

  1. 您正在使用有效的HTML(CSS & JS)
  2. 它工作正常跨您选择支持

再有就是所有的浏览器没有理由不去。

有关html和css的许多内容都归结为个人偏好,只要您实现上述目标,就可以实现目标。

+0

谢谢队友,那也是我一直在运行的同样的心态,但只是想对它有所看法。欣赏反馈。 – 2013-04-08 23:51:31

+0

-1有条件注释已弃用 – Markasoftware 2013-04-09 03:39:16

+1

@Markasoftware为什么减去那么?我说,只要他使用VALID html ...在跳枪之前正确地阅读我的帖子 – shenku 2013-04-09 03:56:59

1

任何时候当您尝试执行浏览器检测时,都会在应用程序中发生误报。浏览器检测可以有多种形式:

  • 条件注释
  • 用户代理嗅探
  • 非标准API测试

你最好不要使用特征检测,以确定你的浏览器不支持并提供替代方案。 Here's a good write up on both subjects