2012-02-02 81 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 
相关问题