【问题标题】:Do conditional comments only work for stylesheets?条件注释是否仅适用于样式表?
【发布时间】:2011-09-10 13:00:27
【问题描述】:

条件 cmets 是否仅适用于 CSS 样式和样式表链接,或者它们可以应用于所有 HTML/JS。我之所以问,是因为如果用户使用的浏览器已知某些功能在其他浏览器中无法正常工作/正常运行,我想显示一条特定消息?

如果没有,无论如何,通过 PHP + regex 来获取用户正在使用的确切浏览器,因为 $_SERVER['HTTP_USER_AGENT'] 似乎返回一个包含多个用户代理名称的字符串?

【问题讨论】:

    标签: php javascript html internet-explorer conditional-comments


    【解决方案1】:

    如果你的意思是这样的:

    <!--[if lte IE 6]> ... <![endif]-->
    

    是的,您也可以在 HTML 中使用它(例如,它通常用于有条件地为 IE6 修复添加一些额外的 CSS)。

    但我不会依赖这个来告诉用户升级过时的浏览器。相反,我会通过检查$_SERVER['HTTP_USER_AGENT'] 在服务器端执行此操作。

    浏览器识别并不简单,因为浏览器倾向于根据自己的喜好格式化用户代理;有许多库使用比较列表等,以便通过解析用户代理字符串来尝试找出实际上是浏览器/版本/操作系统。

    【讨论】:

    • 我刚刚看了看起来很有希望的php函数get_browser(),但是下面的cmets说得好像它有缺陷。您是否有使用它的经验,如果没有,您是否有任何可以推荐的用于用户代理匹配的特定列表或库?我真正想做的就是向下载我的付费应用程序的用户显示警告,他们最好在 Chrome 或 Firefox 中使用它而不是 IE。
    • chrisschuld.com/projects/… 你可以使用这个人并为每个人传递一个不同的类,用生成的内容和伪选择器来改变你的消息
    【解决方案2】:

    条件 cmets 在标记中“起作用”,您可以将它们包装在 CSS、HTML 和 JavaScript 周围。只需用 [if !IE] 包装非 IE 的任何内容

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-08
      • 2011-01-20
      • 1970-01-01
      • 2012-07-27
      • 2012-12-08
      • 2013-01-01
      • 1970-01-01
      相关资源
      最近更新 更多