2012-02-02 78 views
1

我有一個網站,我剛剛發佈,並剛剛發現一堆兼容性問題與Internet Explorer(驚喜!)。我處於緊張狀態,並希望保持網站的正常運行,因爲它在所有其他瀏覽器上看起來不錯,但阻止運行Internet Explorer的用戶在我處理兼容性問題時查看網站併爲其提供默認的初始頁面(如果可能) ..試圖找到一種方法來阻止Internet Explorer用戶打開我的頁面,雖然我解決問題

有沒有辦法做到這一點?我想過如何使用條件語句來進行樣式表的編輯,也許可以用這種方式進行編輯,但我想我會看看是否有人知道一個簡單的方法來完成它。

+0

這聽起來像一個可怕的想法。給他們的網站,但給他們一個通知道歉不得不給他們一個破碎的版本。 – lonesomeday 2012-02-02 00:08:55

+1

@lonesome:id說取決於。例如,如果這是一個投資組合網站,或者可能暫時只有一個飛濺頁面 - 就好像該網站從未啓動過一樣。我認爲這比它在一個災難性的狀態下更好,併爲此道歉,特別是如果他在短期內會得到修復。 – prodigitalson 2012-02-02 00:16:43

+1

也許吧。就我個人而言,我希望你說(a)如果你真的想要(如果你不能阻止我)和(b)給我們你的電子郵件地址,我們會告訴你,如果它是固定的,你可以查看該頁面。如果它不是*完全不可用,那就是...... – lonesomeday 2012-02-02 00:19:38

回答

4

您可以使用僅限IE的條件並在整個頁面上顯示疊加層,請參閱here for conditionals。在你的IE,只有代碼,您會顯示這樣的事情:

<!--[if IE]> 
    <div style='position:absolute;top:0px;left:0px;width:100%;height:100%;background:white;padding-top:50%;text-align:center;'> 
      <!-- add more styling or split it up in some separate stylesheet--> 
      This site is currently disabled for IE users 
    </div> 
<![endif]--> 
0

除了我的頭頂,看起來您將不得不查詢客戶端的瀏覽器用戶代理,並根據結果重定向/加載適當的頁面/ CSS。似乎有條件的聲明是我會去做的。

0

你希望做的是所謂的「嗅探器」,通常認爲是不是非常優雅的方式來攻擊這個問題的種類。但它很有用。

Quirksmode可以說這是the best library。你堅持在大對象下成腳本,並使用這三個屬性查詢它:

BrowserDetect.browser 
BrowserDetect.version 
BrowserDetect.OS 

全部對象源(見怪異模式以獲取更多信息):前

var BrowserDetect = { 
    init: function() { 
     this.browser = this.searchString(this.dataBrowser) || "An unknown browser"; 
     this.version = this.searchVersion(navigator.userAgent) 
      || this.searchVersion(navigator.appVersion) 
      || "an unknown version"; 
     this.OS = this.searchString(this.dataOS) || "an unknown OS"; 
    }, 
    searchString: function (data) { 
     for (var i=0;i<data.length;i++) { 
      var dataString = data[i].string; 
      var dataProp = data[i].prop; 
      this.versionSearchString = data[i].versionSearch || data[i].identity; 
      if (dataString) { 
       if (dataString.indexOf(data[i].subString) != -1) 
        return data[i].identity; 
      } 
      else if (dataProp) 
       return data[i].identity; 
     } 
    }, 
    searchVersion: function (dataString) { 
     var index = dataString.indexOf(this.versionSearchString); 
     if (index == -1) return; 
     return parseFloat(dataString.substring(index+this.versionSearchString.length+1)); 
    }, 
    dataBrowser: [ 
     { 
      string: navigator.userAgent, 
      subString: "Chrome", 
      identity: "Chrome" 
     }, 
     { string: navigator.userAgent, 
      subString: "OmniWeb", 
      versionSearch: "OmniWeb/", 
      identity: "OmniWeb" 
     }, 
     { 
      string: navigator.vendor, 
      subString: "Apple", 
      identity: "Safari", 
      versionSearch: "Version" 
     }, 
     { 
      prop: window.opera, 
      identity: "Opera", 
      versionSearch: "Version" 
     }, 
     { 
      string: navigator.vendor, 
      subString: "iCab", 
      identity: "iCab" 
     }, 
     { 
      string: navigator.vendor, 
      subString: "KDE", 
      identity: "Konqueror" 
     }, 
     { 
      string: navigator.userAgent, 
      subString: "Firefox", 
      identity: "Firefox" 
     }, 
     { 
      string: navigator.vendor, 
      subString: "Camino", 
      identity: "Camino" 
     }, 
     {  // for newer Netscapes (6+) 
      string: navigator.userAgent, 
      subString: "Netscape", 
      identity: "Netscape" 
     }, 
     { 
      string: navigator.userAgent, 
      subString: "MSIE", 
      identity: "Explorer", 
      versionSearch: "MSIE" 
     }, 
     { 
      string: navigator.userAgent, 
      subString: "Gecko", 
      identity: "Mozilla", 
      versionSearch: "rv" 
     }, 
     {  // for older Netscapes (4-) 
      string: navigator.userAgent, 
      subString: "Mozilla", 
      identity: "Netscape", 
      versionSearch: "Mozilla" 
     } 
    ], 
    dataOS : [ 
     { 
      string: navigator.platform, 
      subString: "Win", 
      identity: "Windows" 
     }, 
     { 
      string: navigator.platform, 
      subString: "Mac", 
      identity: "Mac" 
     }, 
     { 
       string: navigator.userAgent, 
       subString: "iPhone", 
       identity: "iPhone/iPod" 
     }, 
     { 
      string: navigator.platform, 
      subString: "Linux", 
      identity: "Linux" 
     } 
    ] 

}; 
BrowserDetect.init(); 
0

地方即檢測像 這爲即6

<!--[if lte IE 6]> 
<link href="css/disposeIE6.css" rel="stylesheet" type="text/css" /> 
<![endif]--> 

然後CSS/dispose.ie.css內部

body{ 
display:  block; width:1024px; height:768px; 
background:  transparent url(../disposeIE6.jpg) 50% 50% no-repeat; 
} 

然後用你的信息製作'disposeIE6.jpg'。這將覆蓋尺寸爲1024px x 768px

+0

爲什麼只使用IE6?其他版本呢? – BoltClock 2012-02-02 00:27:07

0

的網站如果您正在運行Apache,則可以使用根目錄中的單個.htaccess文件進行此操作。

1)Make和IE.html文件。 - 說「這個網站目前正在進行工作,請稍後再試。」
2)在你的網站的根目錄下創建一個.htaccess文件並粘貼下面的文本。

RewriteEngine on 
RewriteCond %{HTTP_USER_AGENT} "MSIE 6" [OR] 
RewriteCond %{HTTP_USER_AGENT} "MSIE 7" [OR] 
RewriteCond %{HTTP_USER_AGENT} "MSIE 8" [OR] 
RewriteCond %{HTTP_USER_AGENT} "MSIE 9" 
RewriteRule (.*) IE.html 
相關問題