怎麼在html頁面和js裏判斷是不是IE瀏覽器

HTML代碼中,在編寫網頁代碼時,各類瀏覽器的兼容性是個必須考慮的問題,有些時候沒法找到適合全部瀏覽器的寫法,就只能寫根據瀏覽器種類區別的代碼,這時就要用到判斷代碼了。在HTML代碼中,區別各類瀏覽器的代碼以下,以ie6爲例
  <!--[if IE 6]>僅IE6可識別<![endif]-->
  <!--[if lte IE 6]> IE6及其如下版本可識別<![endif]-->
  <!--[if lt IE 6]> IE6如下版本可識別<![endif]-->
  <!--[if gte IE 6]> IE6及其以上版本可識別<![endif]-->
  <!--[if gt IE 6]> IE6以上版本可識別<![endif]-->
  <!--[if IE]> 全部的IE可識別<![endif]-->
  以上這些代碼寫法都是針對ie各版本瀏覽器的,在其餘瀏覽器中這些代碼都會被解釋爲Html註釋而直接無視掉。
  <body>
  <!--[if IE 6]>
  <div>
  IE6中才能夠看到
  </div>
  <![endif]-->
  <div>
  其餘
  </div>
  </body>
  因此要想些針對firefox之類的非ie瀏覽器,須要這麼寫:<!--[if !IE]><!--> 除IE外均可識別<!--<![endif]-->瀏覽器

 

js裏:服務器

今天在寫一個代碼複製功能的時候,發現的這個問題,ie11也不支持document.all,看來之後愈來愈標準了ide

今天碰到一個奇怪的問題,有一個頁面,想指定用IE瀏覽器打開,在VS開發環境沒有問題,但部署到服務器上,即便是用IE打開頁面,仍是提示「僅支持IE」,真是暈啊!!
判斷是否IE瀏覽器用的是window.navigator.userAgent,跟蹤這個信息,發如今開發環境,識別爲IE10,但訪問服務器則識別爲IE11,但IE11的userAgent裏是沒有MSIE標誌的,緣由就是這個了。函數

把判斷IE瀏覽器的方法改爲以下就能夠了。spa

原來的函數寫法:對於新版的ie11已經不支持了firefox

1
2
3
4
5
6
function isIE(){
if (window.navigator.userAgent.indexOf("MSIE")>=1)
return true;
else
return false;
}

ie10及以上不支持ie瀏覽器的判斷了,由於ie11已經不支持document.all了,下面是支持ie11的版本的,固然ie6-8也是支持的code

1
2
3
4
5
6
function isIE() { //ie?
 if (!!window.ActiveXObject || "ActiveXObject" in window)
  return true;
  else
  return false;
 }
相關文章
相關標籤/搜索