根据浏览器类型更改Web内容

时间:2009-11-24 21:31:44

标签: php asp.net iis-7 browser

我正在编写一个Web应用程序,我想知道请求来自哪种类型的浏览器/操作系统,并相应地自定义返回的内容。因此,如果有人从iPhone / Android访问该网站,他们会获得更加简化的体验,或者如果它是桌面版,他们会获得完整版本。我将采取完全不同的路径,而不是尝试将内容混合在一起。

ASP.NET / IIS和PHP中推荐的方法是什么?是否有一个地方我可以捕获传入的HTTP请求,做出决定,然后重定向?或者这通常是在一页一页的情况下完成的吗?我应该注意哪些问题?

编辑:确保在缩减版本上有完整版本的链接,这是一个很好的观点。这是一个好点,但提出的问题是,一旦用户做出这个选择,所有未来的重定向现在必须指向完整版本。我真的宁愿在一个地方做所有这些。

干杯,

沙恩

5 个答案:

答案 0 :(得分:1)

不是直接的答案,但值得查看CSS媒体类型。您可以指定手持设备类型以简化手机和其他小型屏蔽设备的页面。

http://www.w3.org/TR/CSS21/media.html

答案 1 :(得分:1)

您可以查看HTTP请求中的UserAgent标头并相应地重定向。

在PHP中$_SERVER['HTTP_USER_AGENT']

但是,您应该注意在执行此操作时不要编写大量重复的代码。

答案 2 :(得分:1)

ASP.NET具有内置的浏览器检测机制。它由完全可扩展的XML文件集合(* .browser)驱动,这些文件包含用于匹配传入的User-Agent字符串和匹配代理的关联属性的正则表达式。

您可以从Request.Browser对象访问属性;您还可以根据浏览器细节标记控件属性。

网上有很多关于此的信息 - 我也在我的书中详细介绍了它:Ultra-Fast ASP.NET

答案 3 :(得分:0)

对于ASP.NET应用程序,您可以查看Global.asax文件和Session_BeginRequest事件。

答案 4 :(得分:-2)