0

我有一个简单的 HTML 登录表单,我只想将它显示给使用 Internet Explorer 的用户(根据现有设计,显然不是选择),并在任何其他浏览器访问时显示错误消息。

我的问题是,<!--[if IE]>如果有的话,使用正文中的标签来确定要显示的内容有多大的错误?使用这个有什么缺点吗?

登录.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 或服务器端的东西来执行此操作,但我想尽可能少地更改代码和设计,并且实际上对上述方法的缺点非常好奇。

4

3 回答 3

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]-->
于 2013-04-08T23:51:10.680 回答
1

每当您尝试进行浏览器检测时,您的应用程序中都会存在误报的风险。浏览器检测可以有多种形式:

  • 有条件的评论
  • 用户代理嗅探
  • 非标准 API 测试

您最好使用特征检测来识别您的浏览器支持/不支持什么并提供替代方案。这是两个主题的好文章

于 2013-04-09T03:22:15.107 回答
0

在我看来,只要:

  1. 您正在使用有效的 html (css & js)
  2. 它适用于您选择支持的所有浏览器

那么没有理由不这样做。

很多关于 html 和 css 的内容都归结为个人喜好,只要你实现了上述目标,那就去做吧。

于 2013-04-08T23:45:38.837 回答