Попытка найти способ запретить пользователям Internet Explorer открывать мою страницу во время устранения проблем - PullRequest
1 голос
/ 02 февраля 2012

У меня есть сайт, который я только что опубликовал, и только что обнаружил кучу проблем совместимости с Internet Explorer (неожиданный сюрприз!). Я был в затруднительном положении и хотел бы поддерживать сайт в рабочем состоянии, поскольку он отлично смотрится во всех других браузерах, но мешает людям, использующим Internet Explorer, просматривать сайт и предоставлять им заставку по умолчанию (если это возможно), пока я работаю над проблемами совместимости ..

Есть ли способ сделать это? Я думал об использовании условных операторов для таблиц стилей и, возможно, редактировал их таким образом, но я подумал, что увижу, знает ли кто-нибудь простой способ сделать это.

Ответы [ 5 ]

4 голосов
/ 02 февраля 2012

Вы можете использовать условные выражения только для IE и отображать наложение на всю страницу, условия см. Здесь *1002*.В вашем коде ie-only вы бы отобразили что-то вроде этого:

<!--[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 голосов
/ 02 февраля 2012

Если вы используете Apache, вы можете сделать это с помощью одного файла .htaccess в корневом каталоге.

1) Сделать и файл 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
0 голосов
/ 02 февраля 2012

место, т.е. обнаружение перед как это для т.е. 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 голосов
/ 02 февраля 2012

То, что вы хотите сделать, называется «анализом браузера» и обычно считается не очень элегантным способом решения этой проблемы. Но это полезно.

Quirksmode имеет, вероятно, лучшую библиотеку для этого. Вы вставляете большой объект ниже в скрипт и запрашиваете его, используя следующие три атрибута:

BrowserDetect.browser
BrowserDetect.version
BrowserDetect.OS

Полный источник объекта (см. Quirksmode для получения дополнительной информации):

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 голосов
/ 02 февраля 2012

Мне кажется, что вам придется запросить пользовательский агент браузера клиента и перенаправить / загрузить соответствующую страницу / CSS в соответствии с результатом. Похоже, что условное утверждение - это то, как я бы поступил.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...