2013-06-28 45 views
0

有沒有一種方法可以在.js文件中使用像<!--[if (IE 6)|(IE 7)]>這樣的HTML條件標籤,因爲如果訪問者使用IE6或IE7,我需要執行特定的JavaScript?javascript js文件中的條件標籤

感謝

+1

爲什麼不告訴我們你想做什麼?檢查客戶端使用哪種瀏覽器是不好的......如果您告訴我們您正在嘗試的是什麼,我們可以提出更好的解決方案。 – jeremy

+2

或者你也可以單獨使用另一個JavaScript文件中的代碼,這個文件只有在使用IE 6或7時纔會實現。 – Atrox111

+1

那麼腳本與['@ cc_on'](http://msdn.microsoft.com/ de/de/library/ie/8ka90k2e(v = vs.94).aspx),但請不要使用這個(我只提到它,你知道它存在但它確實很糟糕),因爲有了這個在縮小,驗證和其他問題方面存在問題。 –

回答

3

我會做這樣的事情與標記...

<!DOCTYPE html> 
<!--[if lt IE 7]>  <html class="lt-ie9 lt-ie8 lt-ie7"> <![endif]--> 
<!--[if IE 7]>   <html class="lt-ie9 lt-ie8"> <![endif]--> 
<!--[if IE 8]>   <html class="lt-ie9"> <![endif]--> 
<!--[if gt IE 8]><!--> <html class=""> <!--<![endif]--> 
<head> 

然後在你的JS,你可以檢查相應的車身式樣:

​​
-1

用戶navigator.userAgent檢查用戶的瀏覽器。

推薦閱讀:http://api.jquery.com/jQuery.support/

+2

用戶代理可能被欺騙,因此不是確定瀏覽器的可靠方法。你應該看看***功能檢測***,這是好處,而不是「瀏覽器嗅探」。爲了實現這一點,請查看[modernizr.js](http://modernizr.com/)。 – War10ck

+0

我在回答中提供了一個關於「功能檢測」的鏈接,只是回答了在Javascript中檢查瀏覽器的方法。你甚至看到它了嗎? – Racso

+0

你做了,但你建議OP使用'userAgent'對象來檢查瀏覽器是完全不可靠的... – War10ck

0

單獨的JS文件是最好的選擇。

但是你可以使用的navigator.userAgent:

var userAgent = navigator.userAgent; 

從這裏就可以判斷用戶使用的是查看你的頁面,並使用內置JS if語句的瀏覽器。

+1

用戶代理可能被欺騙,因此不是可靠的確定瀏覽器的方法。你應該看看***功能檢測***,這是好處,而不是「瀏覽器嗅探」。爲了實現這一點,請查看[modernizr.js](http://modernizr.com/)。 – War10ck

1

可以使用條件的意見在你的標記中,並使用結果在你的js中創建條件變量。與此開始您的文檔:

<!DOCTYPE HTML> 
<!--[if lte IE 7]><html lang="en" class="ieDetect ie7Detect"><![endif]--> 
<!--[if IE 8]><html lang="en" class="ieDetect ie8Detect"><![endif]--> 
<!--[if IE 9]><html lang="en" class="ieDetect ie9Detect"><![endif]--> 
<!--[if !IE]>--><html lang="en"><!--<![endif]--> 

我通常喜歡使用jQuery,這和檢查類:

var ieDetect = $('.ieDetect').length 
, ie7Detect = $('.ie7Detect').length 
, ie8Detect = $('.ie8Detect').length 
, ie9Detect = $('.ie9Detect').length 
; 

if (ieDetect){ 
    // do stuff with IE 
} 

如果你只想使用JS,你可以使用一個類抓取功能,保留上面的標記,或者您可以放棄通用的ieDetect類,只需在ie標籤上使用ie7Detect(和8,9)作爲標識。

var ie7Detect = document.getElementById("ie7Detect").length 
, etc...