2012-01-26 36 views
0

我正在爲Codeigniter尋找更高級的用戶代理檢測庫。 我想爲操作系統,瀏覽器和瀏覽器版本添加短標籤到body標籤,所以我可以編寫CSS,以適應不同的瀏覽器和平臺。Codeigniter的更好的用戶代理庫

像這樣:

<body id="Win7 IE9"> 

眼下對CI的默認代理檢測庫產生這樣的:

<body id="Windows 7 Internet Explorer 9.22.2"> 

我怎麼能 「縮短」 的反應如何?

這是要我期待實現:http://www.contao.org/en/blog/forget-about-browser-hacks-in-contao-210.html

感謝所有輸入!

回答

1

我不認爲用戶代理庫是壞的。它只是做它應該做的事情。
也許你應該建立一個小型的輔助或延長用戶代理庫,這是非常簡單的任務(你應該看看agent->browser()agent->versionagent->platfrom()等)

儘管Contao說什麼,這些都是瀏覽器的黑客。更好的方法是以正確的方式構建樣式表和/或JavaScript(沒有這種類型的黑客)。我從來不需要針對不同瀏覽器使用不同的樣式表(或特定於瀏覽器的類)。

+0

你如何逃脫一個ss和沒有瀏覽器的信息?我得到你開始與鍋爐板,以避免填充問題等,但如果你想使用HTML5功能呢?需要不同的行爲併爲較舊的瀏覽器顯示。如果你想優化移動設備呢?媒體查詢只適用於css3?你怎麼能容納這些東西沒有任何用戶代理信息? (真正的問題 - 尋找指針) – WebweaverD

+0

瀏覽器嗅探是非常糟糕的做法。爲什麼我應該使用更多的樣式表?我沒有使用任何modernizr樣板框架/包。 現在,我正在爲移動設備優化大型網站,媒體查詢工作得很好(也在舊設備上)。 我不需要針對舊版瀏覽器的不同行爲,我不會參與此「html5」宣傳。我正在使用所有的東西,我需要使用(html5視頻,一些漂亮的css3功能),並且我的網頁在舊版瀏覽器中正在退化。 – shaggy

+0

我不認爲媒體查詢工作下ie9沒有一個基於JavaScript的shiv這可能依賴於某種形式的瀏覽器嗅探(也許不是) – WebweaverD

1

我明白你想要做什麼。爲了避免使用CodeIgniter,你必須重新編寫用戶代理庫,以便返回較短的用戶代理字符串(耗時但不太困難)(這四個用戶代理陣列位於:system/libraries/user_agents.php )。

-1

嘗試此

$這 - >會話級>的userdata [ 'USER_AGENT'];

0

自從問了這個問題已經有一年多的時間了,但我相信它將在未來幫助某人。用戶代理名稱在./application/config/user_agents.php文件中以關聯數組格式定義,您可以使用所需的名稱更改數組的值。

注意:更改配置文件中的值將反映在整個應用程序中。如果你想改變一個特定的應用領域,我建議創建你自己的功能。