2013-05-21 71 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參數 - 源,中,長期,內容, 活動

相關問題