如果需要,IE8可以進入IE7模式。 jQuery如何檢測這個?具體來說,$.browser.version
的價值是多少?
回答
在IE7模式下的IE8會報告IE7。 但是你可以分析用戶代理並檢查「Trident/4.0」。如果你看到這條線,那麼你用IE8
該$.browser
obejct填充使用一個概念知道瀏覽器嗅探。簡而言之,這是將數據從用戶代理字符串中掃描出來的過程,這些字符串是由瀏覽器,機器人以及訪問該頁面的其他內容發送的。
由於用戶代理僞造的敏感性,此對象在jQuery的更高版本中不推薦使用。目標檢測和特徵檢測(請參閱$.support
)現在優先使用。
例如,Opera 8.5。用於自己標識爲IE: http://www.javascriptkit.com/javatutors/navigator.shtml
$。支持:
http://docs.jquery.com/Utilities/jQuery.support
用戶代理:
http://en.wikipedia.org/wiki/User_agent
http://www.zytrax.com/tech/web/browser_ids.htm
檢測對象
http://www.quirksmode.org/js/support.html http://developer.apple.com/internet/webcontent/objectdetection.html
瀏覽器探測:
http://en.wikipedia.org/wiki/Browser_sniffing
特徵檢測:
好吧,是的,這很不錯,但是'support'屬性告訴我IE是否支持'inline-block'? 'leadingWhitespace,tbody,objectAll,htmlSerialize,style,hrefNormalized,opacity,cssFloat,scriptEval,noCloneEvent,boxModel' – nickf 2009-08-19 11:42:08
不知道他們是否會這樣做。您可以嘗試擴展.support功能(請參閱http://www.waytoocrowded.com/2009/03/14/jquery-supportminheight/上的示例),或者甚至有人已經擴展了此功能。不過,這對我來說有點不明確。 – 2009-08-19 12:21:44
JQuery只能看到瀏覽器告訴它的內容。
在IE7模式下,瀏覽器將自己報告爲IE7,這就是JQuery將看到的內容。
什麼瀏覽器告訴它可以是一個謊言 – 2009-08-19 09:29:52
嗯,有點......當在IE7模式下,一切應該像瀏覽器真的是IE7。瀏覽器報告渲染引擎的版本,而不是程序的實際版本。 – Guffa 2009-08-19 09:33:33
工作,我是.NET開發人員,我總是喜歡用一個Sessions.aspx頁,我爲這個問題kind'a創建
下跌免費使用它,我也可以共享代碼。
正如您剛纔所做的(14秒)您可以看到的MSIE 8和MSIE 7在javascript navigator屬性中指定的那樣,它們會在您更改兼容模式時發生更改,因爲呈現頁面的引擎略有不同(請記住,這不是100%的IE7引擎!)
,而不是使用在方法jQuery的BUIT,只要使用一般的JavaScript
IE8在IE7模式
4.0(兼容; MSIE 7.0; Windows NT的6.0; WOW64; Trident/4.0; GTB6; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.30618; .NET CLR 3.5.30729; InfoPath.2; OfficeLiveConnector.1.4; OfficeLivePatch.1.3)
IE8在本地模式
4.0(兼容; MSIE 8.0; Windows NT 6.0; WOW64;三叉戟/ 4.0; GTB6; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.30618; .NET CLR 3.5.30729; InfoPath.2; OfficeLiveConnector.1.4; OfficeLivePatch.1.3)
代碼:
var browserVersion = navigator.appVersion.toLowerCase();
if(browserVersion.contains('msie 8')) {
// IE 8
}
else if(browserVersion.contains('msie 7')) {
// IE 7
}
屏幕投射視頻:http://www.balexandre.com/temp/showFlash.aspx?swf=2009-08-19_1138_ie8ie7.swf&w=952&h=742
哇,那屆會議頁面已經過時了 – Kloar 2013-05-16 18:58:25
有更好的嗎? – balexandre 2013-05-16 21:29:32
我只是測試了這一點,我自己(剛剛下載的IE8)
當你將IE8與IE7兼容時,像這樣的標籤:
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
的$.browser.version
值是仍然 8.0!
- 1. 什麼是IE8不瞭解這個CSS?
- 2. 爲什麼IE8不是這樣的JS?
- 3. 標籤[...]不是IE8
- 4. Modernizr.load不是在IE8
- 5. jQuery的不是IE8
- 6. jquery.cookies不是在IE8
- 7. IE8不是偶爾
- 8. jQuery.hover不是在IE8
- 9. excanvas JS是不是在IE8
- 10. 什麼是jQuery.html()取消對IE7和IE8
- 11. 什麼是IE8最新的jQuery版本?
- 12. Addclass不是在IE8的jQuery
- 13. jQuery是:專注不在IE8
- 14. funtion insertAdjacentHTML不是在IE8
- 15. IE7上,而不是在IE8
- 16. jQuery的下拉不是IE8
- 17. AngularJS表達不是IE8
- 18. jQuery的autocompleter不是在IE8
- 19. PIE.htc圓角不是在IE8
- 20. 菜單是不是在IE8/7
- 21. jQuery是不是在IE8工作
- 22. 基金會utils的是不是在IE8
- 23. jQuery在IE8中不支持.has?什麼是解決方法?
- 24. 爲什麼腳本在Firefox中運行,但不是IE8?
- 25. 爲什麼這個工作在Firefox和Chrome,但不是IE8
- 26. 這是什麼錯我的JavaScript代碼?它不工作在IE8
- 27. 爲什麼會.load在IE8
- 28. IE8 Jquery scrollTop總是返回0
- 29. 爲什麼不工作在IE8的.change
- 30. 爲什麼div/img不在IE8中心?
「IE7標準模式」中的IE 8仍然從$ .browser.version報告「8.0」。 – bart 2012-11-21 00:46:01