Тестирование версии браузера является ненадежным методом — многие пользователи не предоставляют эту информацию, а другие говорят вам, что они используют другой браузер, чем на самом деле. Если вам нужны определенные функции, то единственный надежный способ определить, доступны ли они, — это использовать javascript, чтобы увидеть, существуют ли они.
Вы полны решимости перенаправить, а не просто изменить то, что отображается? Потому что изменить содержимое текущей страницы было бы намного проще. Просто добавьте что-то вроде этого на свою страницу:
<div id='warning'>Your browser sucks!</div>
CSS:
#warning {
/* make this DIV very visible - you could even cover the rest
of the page if your website is useless without javascript. */
}
Теперь страница будет загружаться с отображением #warning, и вы можете использовать javascript, чтобы скрыть его, если присутствуют необходимые функции (вы не хотите делать обратное и использовать javascript для его отображения, потому что вы хотите, чтобы он отображался, если ваш скрипт не работает). т бег). Есть много способов сделать это, и самым «стандартным» способом было бы прикрепить событие загрузки. Тем не менее, это одна из ситуаций, когда я думаю, что хакерский подход намного лучше. Если вы выполняете тест под нагрузкой, то предупреждение будет отображаться до тех пор, пока не выполнится javascript, что может занять от доли секунды до нескольких секунд. Что вы действительно хотите сделать, так это скрыть элемент до того, как он когда-либо отобразится, и вы можете сделать это, добавив что-то подобное в раздел <head>
.
if((function() {
var t,u,i,j,
css='textShadow,textStroke,boxShadow,borderRadius,borderImage,opacity'.split(','),
prefixes=',webkit,moz,o,ms,khtml'.split(','),
nPrefixes=prefixes.length,
el=document.createElement('i').style;
styles:for(i=0;t=css[i];i++) {
t=t.charAt(0).toUpperCase()+t.substr(1);
for(j=0;j<nPrefixes;j++) {
u=prefixes[j]+t;
if(el[u.charAt(0).toLowerCase()+u.substr(1)]!==undefined)
continue styles;
}
return false;
}
return true;
})())
document.write("<style type='text/css'>#warning {display:none;}</style>");
В соответствии с вашим примером предполагается, что вам нужны функции textShadow, textStroke, boxShadow, borderRadius, borderImage и opacity.
Вы действительно не должны помещать какой-либо другой javascript в <head>
, поскольку страница не начнет рендеринг до тех пор, пока код над ней не завершит выполнение.
person
Community
schedule
03.01.2012
css3
иhtml5
, в любом случае вы можете сделать это, зная браузер пользователя и его версию. погугли это - person diEcho   schedule 03.01.2012