询问他们使用哪种浏览器的通用方法?

时间:2009-08-21 08:34:13

标签: user-interface browser

我想在文本输入上面加上“你使用的是什么浏览器”这个问题。然后,当提交表单时,我想将他们的答案与他们的User-Agent HTTP标头进行比较。

我对如何可靠地完成这项工作感到难过。

我可以让他们拼出来而不是使用像IE或FF这样的首字母缩略词,但是Internet Explorer使用“MSIE”作为它的'标识符不是吗?

我的另一个想法是保留一组User-Agent字符串,然后用select元素呈现它们,这些元素随机插入4个左右的其他随机字符串并要求他们选择它们。我担心非技术娴熟的用户会因为这个问题而笨拙这个问题。我想我可以使用一些逻辑来确保选项中每种浏览器类型中只有一种,但即便如此,我也很谨慎。

4 个答案:

答案 0 :(得分:6)

为什么要向用户询问其用户代理?

如前所述,拉出适当的http标头就足够了。

但如果你需要那么糟糕,我会去

  • 正则表达式 - 用于检查http用户代理标头并从该标头中删除不重要的信息
  • 根据上一步显示可能的匹配
  • 询问用户匹配是否正确,如果没有,让他输入自己的答案
  • 然后我会尝试将他输入的内容与某些字典值相匹配,以便能够输入IE和MSIE并获得相同的结果。

上面看起来很模糊:)和抽象,也许你可以提供一个解释 - 为什么你想要那个?也许还有其他方法?

答案 1 :(得分:1)

记住:客户端发送HTTP标头,用户可以在User Agent中放置任何内容。因此,如果您想要抓住那些“撒谎”他们正在使用的浏览器的人,您只会抓住那些在发送之前无法修改HTTP标头的人。

答案 2 :(得分:1)

您既不能100%信任用户输入,也不能信任浏览器在HTTP标头中发送的字符串......

答案 3 :(得分:1)

显而易见的问题是,为什么要询问用户他们使用的是什么浏览器?

但鉴于此:

a)规范化用户字符串:小写,删除空格,删除数字?

b)在规范化字符串和用户代理字符串之间构建映射。

当您进行查找时,如果规范化字符串或用户代理字符串不在地图中,则将其传递给人员以添加到具有适当映射的地图。

您可能也希望以某种方式规范用户代理?