2013-05-21 38 views
4

我想测试用户的浏览器window.width是否大于800px 如果是这样我想渲染部分A否则如果window.width> = 800px。根据用户窗口大小呈现不同的部分

我几乎没有经验,请解释一下我的选项: 我期待着在页面或jQuery上使用javascript方法。

我已经试过

http://scottwb.com/blog/2012/02/23/a-better-way-to-add-mobile-pages-to-a-rails-site/

但 1.它不会为我工作。 2.即使它真的这样做,我希望它会基于使用的设备工作,而不是像素数。

预先感谢您!

+0

浏览器通常不会让您知道正在使用的设备。用户代理可以让你对操作系统有一个公平的想法,但不是特定的设备。即使你有这些信息,也没有一个标准库来告诉你每个设备AFAIK的屏幕尺寸。 – PinnyM

回答

1

请求不会包含有关屏幕大小的数据,因此常识上服务器无法知道屏幕宽度和服务响应,因为PinnyM在评论中也提到了这一点。

一般惯例是使用用户代理从服务器检测移动设备。用户代理是请求的一部分。这不是100%准确的,但在大多数情况下,仍然可以依赖它。

但是,仍然存在针对您的问题的解决方案 - 基于屏幕大小提供页面服务。

解决方法是首先使用Javascript检测屏幕大小,然后使用JS删除cookie。服务器能够读取cookie并决定要呈现哪个模板。

基本的回购在这里:https://github.com/mattstauffer/Simple-RESS这是PHP的,但你可以从源代码中获得想法。

还有Rails的实现:https://github.com/matthewrobertson/ress,并引进:http://matthewrobertson.org/blog/2013/02/15/introducing-ress/

我认为:虽然这是可行的,我不喜欢这种解决方案。很多工作要做,很多事情要照顾。我宁愿用用户代理检测代替。

+0

感谢您的回复,将尽力回复您。 –

0

听起来像使用响应前端框架可能是需要研究的东西。我是Foundation的忠实粉丝,在Rails应用中使用它非常容易。新版基金会今天刚刚推出!检查出:http://foundation5.zurb.com/

2

您可以使用Ahoy。 current_visit方法包含以下信息。

当有人访问您的网站时,Ahoy会创建一个有很多 有用信息的访问。

流量来源 - 引荐,指域,登陆页面,搜索
关键字位置 - 国家,地区和城市
技术 - 浏览器,操作系统, 和设备类型
UTM参数 - 源,中,长期,内容, 活动

相关问题