2011-10-18 87 views
0

源代碼:正確的語法瀏覽器嗅探(的createElement)<IE9

if (navigator.userAgent.toLowerCase().indexOf('msie') != -1 && parseInt($.browser.version, 10)<7) 

編輯 - 對不起,貼錯代碼。

什麼是正確的形成上述情況,以identfiy瀏覽器小於IE9?

感謝

編輯 -

下面是上面代碼的原因:

if (navigator.userAgent.toLowerCase().indexOf('msie') != -1) { 
        hidden = document.createElement('<input type="hidden" name="' + atName + '" value="' + attrId + '"/>'); 
       } else { 
        hidden = document.createElement("input"); 

它在任何低是對的createElement問題比IE9

此外,我喜歡重寫整個函數,但由於範圍的原因,我無法重寫文件,直到它被包含在一個項目中 - 所以我需要重寫這一行到wor k正確。

回答

1

AND是不是一個有效的JavaScript關鍵字。 VERSION似乎都沒有在任何地方宣佈。另外,我會建議你不要針對特定​​的導航器或版本進行測試,而是測試瀏覽器是否支持您要使用的功能。一種稱爲特徵檢測的技術。因此,例如,如果您要使用HTML5's canvas element,則不要測試瀏覽器是否爲XXX,版本是否爲YYY。測試瀏覽器是否支持HTML canvas元素。 Modernizr是這個工作的優秀圖書館。


UPDATE:

如果你不想聽到的良好做法,仍然堅持這個瀏覽器版本檢測:

if ($.browser.msie && parseInt($.browser.version, 10) < 9) { 
    alert('Warning, you are running a crap of a browser. Please upgrade!'); 
} 
+0

它必須是這樣,看到編輯上面的代碼。 – Jason

+0

@Jason,不,它不應該這樣:-)讓它不應該。你不會後悔的。 –

+0

不是我的決定 - 不能重寫整個文件,我必須解決這一行 – Jason