有没有办法在.js文件中使用像<!--[if (IE 6)|(IE 7)]>
这样的HTML条件标签,因为如果访问者使用IE6或IE7,我需要执行某些javascript?
由于
答案 0 :(得分: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中,你可以检查适当的体型:
if (html tag has class lt-ie8) {
// we're in ie7 and below land
}
答案 1 :(得分: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类,只需使用ie7Detect(和8,9)作为html标记上的ID。
var ie7Detect = document.getElementById("ie7Detect").length
, etc...
答案 2 :(得分:0)
单独的JS文件是最佳选择。
但是你可以使用navigator.userAgent:
var userAgent = navigator.userAgent;
由此您可以确定用户用来查看页面的浏览器并使用JS中内置的if语句。
答案 3 :(得分:-1)
用户navigator.userAgent
检查用户的浏览器。