簡體   English   中英

如何檢測小於10的msie?

[英]how to detect msie less than 10?

可能有很多問題和答案,但我找不到它確實是檢測低於 10 的 Internet Explorer 版本的最佳、最快和最簡單的方法。

那么,如何檢測小於 10 的 Internet Explorer?

沒有比下面列出的解決方案更快、更短的解決方案。

var IElt10=0/*@cc_on@if(@_jscript_version<10)1@end@*/;

如果瀏覽器大於 10,上面的解決方案會將變量 IElt10 的值設置為 0(在 if 語句中評估為 false),如果瀏覽器小於 10(在 if 語句中評估為 true)比 10. 這將允許您使用上面的代碼執行以下操作:

var IElt10=0/*@cc_on@if(@_jscript_version<10)1@end@*/;
if (IElt10){
    alert("You are using a version of internet explorer less than 10");
} else {
    alert("You're not using a version of internet explorer less than 10");
}

它基於條件注釋工作 由於條件注釋仍然是注釋,因此大多數(如果不是全部)縮小器不會檢測到條件注釋很重要,而將其與其余注釋一起丟棄。 解決這個問題的一個簡單方法是簡單地將 IElt10 的值放在類似於 alert 的東西中,如下所示:

源代碼:

var IElt10=alert(0/*@cc_on@if(@_jscript_version<10)1@end@*/);
if (IElt10){
    alert("You are using a version of internet explorer less than 10");
} else {
    alert("You're not using a version of internet explorer less than 10");
}

然后,您可以縮小代碼。 並且,在縮小后的代碼中,找到警報,並用原始表達式替換整個警報語句(即整個警報(0))。 例如:

縮小前:

alert(0)?alert("You are using a version of internet explorer less than 10"):alert("You're not using a version of internet explorer less than 10")

現在,將alert(0)替換為0/ @cc_on@if(@_jscript_version<10)1@end@ / ,如下所示。

縮小后:

0/*@cc_on@if(@_jscript_version<10)1@end@*/?alert("You are using a version of internet explorer less than 10"):alert("You're not using a version of internet explorer less than 10")

而且,wala:你比 minifier 更聰明,所以現在你有工作的、縮小的代碼。

您可以在瀏覽器中測試用戶代理字符串,但現在不鼓勵檢測您的 Web 應用程序所需的特定功能。 查看像Modernizr這樣的框架,它會讓你更輕松。 如果您真的想檢測 IE <10,則 UA 字符串中有“MSIE”,后跟一個版本,例如“MSIE 9.0”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM