Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   определение браузера и {действия} (https://javascript.ru/forum/events/28551-opredelenie-brauzera-i-%7Bdejjstviya%7D.html)

rori 24.05.2012 13:53

определение браузера и {действия}
 
Здравствуйте, у меня следующий вопрос, мне нужно, чтобы когда юзер заходил с ие6 и ие7 то вместо сайта вылезала другая страничка напрмер на html в которой бы я указал ссылки на скачивание более нового браузера, подыскал вроде-бы скрипт для этого, помогите доработать, или подскажите более юзабельный способ

<script type="text/javascript" src="bdetect.js"></script>
	<script type="text/javascript">
	function bdetect()
	{
	   getBrowser();
	    /* ставим условие, в котором определяем нужный нам браузер и его версию */
	   if(data[0]=="MSIE" && data[1]=="7")
	   {
	        что вот тут нужно вставить, чтобы вылезала другая страница вместо запрашиваемой?
	   }
	}
	window.onload = bdetect;
	</script>

vadim5june 24.05.2012 14:26

location.href='http://javascript.ru';

rori 24.05.2012 14:31

Цитата:

Сообщение от vadim5june (Сообщение 176364)
location.href='http://javascript.ru';

ок спасибо, а если я хочу указать версию 6 и 7 как будет выглядеть скрипт? И вставляется он в теги хеад как я понял да?

vadim5june 24.05.2012 14:38

Цитата:

Сообщение от rori (Сообщение 176365)
ок спасибо, а если я хочу указать версию 6 и 7 как будет выглядеть скрипт? И вставляется он в теги хеад как я понял да?

да в хеад
разница в том что когда вставляем в боди код начинается выполнятся после загрузки страницы а когда в хеад то раньше поэтому ставят
window.onload = bdetect;
то есть запускать после загрузки
кода определения браузера у меня нет но его в инете легко найти

bot87 24.05.2012 14:39

А если использовать коментарии [If IE]?
Внутрь поместить скрипт.

rori 24.05.2012 14:44

Цитата:

Сообщение от vadim5june (Сообщение 176367)
да в хеад
разница в том что когда вставляем в боди код начинается выполнятся после загрузки страницы а когда в хеад то раньше поэтому ставят
window.onload = bdetect;
то есть запускать после загрузки
кода определения браузера у меня нет но его в инете легко найти

что-то не срабатывает, прописал в хеаде
<script type="text/javascript" src="bdetect.js"></script>
<script type="text/javascript">
	function bdetect()
	{
	   if(isItBrowser("MSIE","7"))
	   {
	        location.href='http://javascript.ru';
	   }
	}
	window.onload = bdetect;
</script>

попробывал в ие 7 и всеравно страница открылась моя как и раньше

vadim5june 24.05.2012 14:55

Цитата:

Сообщение от rori (Сообщение 176369)
попробывал в ие 7 и всеравно страница открылась моя как и раньше

значит Ваша функция isItBrowser("MSIE","7") неправильно определяет-вставьте туда alert
может для ие нужно window.location.href

rori 24.05.2012 15:02

Цитата:

Сообщение от vadim5june (Сообщение 176371)
значит Ваша функция isItBrowser("MSIE","7") неправильно определяет-вставьте туда alert
может для ие нужно window.location.href

не пашет((

пробывал и так
<script type="text/javascript" src="bdetect.js"></script>
<script type="text/javascript">
function bdetect()
{
   getBrowser();
    /* ставим условие, в котором определяем нужный нам браузер и его версию */
   if(data[0]=="MSIE" && data[1]=="7")
   {
        alert(eeee);
   }
}
window.onload = bdetect;
</script>


и так

<script type="text/javascript" src="bdetect.js"></script>
<script type="text/javascript">
function bdetect()
{
   if(isItBrowser("MSIE","7"))
   {
        alert(eeee);
   }
}
window.onload = bdetect;
</script>

Раед 24.05.2012 15:37

rori,
Делайте так
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
*!*
<!--[if lt IE 8]>
<script type="text/javascript">
location.href = 'http://www.mozilla.org/en-US/products/download.html?product=firefox-12.0&os=win&lang=en-US';
</script>
<![endif]-->
*/!*
</head><body>
В ИЕ6, 7 будет переадресация.
</body></html>

bes 24.05.2012 15:46

Насколько я знаю (если не ошибаюсь), в javascript нет встроенной функции getBrowser, но её можно создать, здесь можно использовать объект navigator.
Насчёт onload в head или в body, на мой взгляд, никакой разницы, так как собственно и загружать-то нечего раз вся страница - это скрипт перехода сразу на другую страницу.

Можно, например, и так (поставил в одном пункте 8 версию IE, у кого есть, можно проверить).

<script>
window.onload = function () {
  if ( navigator.userAgent.indexOf('MSIE 6') != -1 || navigator.userAgent.indexOf('MSIE 8') != -1 )
    location.href = 'http://learn.javascript.ru/';
  else
    location.href = 'http://learn.javascript.ru/browser-environment';
}
</script>

bes 24.05.2012 15:55

А вообще, на мой взгляд, не очень приятно, когда тебя сразу посылают что-то качать, спросить наверное сначала нужно.

devote 24.05.2012 15:57

var ie = eval( "/*@cc_on (@_jscript_version+'').replace(/\\d\\./, '');@*/");
if ( !ie ) {
    alert( "Вы используете браузер не от Microsoft" );
} else if ( ie < 8 ) {
    alert( "Зашли через ИЕ ниже 8-й версии" );
} else {
    alert( "Вы зашли через ИЕ 8 или выше" );
}

bes 24.05.2012 16:01

devote, не проще ли как у меня, как я понял символы MSIE номер версии в userAgent для IE есть всегда, или здесь есть подводные камни?

Раед 24.05.2012 16:23

Цитата:

Сообщение от bes
не проще ли как у меня

А не проще ли условными комментариями, как у меня?

devote 24.05.2012 16:24

Пусть сам выбирает что ему по душе, главное у него есть выбор

bes 24.05.2012 17:26

Цитата:

Сообщение от Раед
А не проще ли условными комментариями, как у меня?

Если использовать только для версий IE, то наверное проще.

dmitriymar 24.05.2012 18:04

Цитата:

Сообщение от vadim5june
разница в том что когда вставляем в боди код начинается выполнятся после загрузки страницы а когда в хеад то раньше поэтому

с чего это?
<div>one</div>
<script>alert(1)</script>
<div>two</div>

vadim5june 24.05.2012 19:32

Цитата:

Сообщение от dmitriymar (Сообщение 176406)
с чего это?

Всегда вставляю скрипты в head и запускаю связанные с dom по onload.И этот пример убеждает меня и дальше так делать ибо считаю что вставка скрипта в body источник потенциальных ошибок. Спасибо.

rori 25.05.2012 00:35

спасибо Вам люди за помощь, но вопрос пока временно снят)

rori 28.05.2012 22:32

Цитата:

Сообщение от devote (Сообщение 176381)
var ie = eval( "/*@cc_on (@_jscript_version+'').replace(/\\d\\./, '');@*/");
if ( !ie ) {
    alert( "Вы используете браузер не от Microsoft" );
} else if ( ie < 8 ) {
    alert( "Зашли через ИЕ ниже 8-й версии" );
} else {
    alert( "Вы зашли через ИЕ 8 или выше" );
}

такс, в общем я хочу вывести сообщение в какоенибудь окошко например в див какойнить, пробывал иннер и документ врайт - вместо аллерта, не выводило почему-то

rori 28.05.2012 22:34

<script>
var ie = eval( "/*@cc_on (@_jscript_version+'').replace(/\\d\\./, '');@*/");
if ( !ie ) {
    document.write=("не ие");
} else if ( ie < 8 ) {
    document.write=("ниже 8ой версии");
} else {
    document.write=("Вы зашли через ИЕ 8 или выше");
}
</script>

devote 28.05.2012 22:40

<script>
var ie = eval( "/*@cc_on (@_jscript_version+'').replace(/\\d\\./, '');@*/");
if ( !ie ) {
    document.write("не ие");
} else if ( ie < 8 ) {
    document.write("ниже 8ой версии");
} else {
    document.write("Вы зашли через ИЕ 8 или выше");
}
</script>

rori 29.05.2012 13:10

Цитата:

Сообщение от devote (Сообщение 177230)
<script>
var ie = eval( "/*@cc_on (@_jscript_version+'').replace(/\\d\\./, '');@*/");
if ( !ie ) {
    document.write("не ие");
} else if ( ie < 8 ) {
    document.write("ниже 8ой версии");
} else {
    document.write("Вы зашли через ИЕ 8 или выше");
}
</script>

а ну да, ступил чето)) а если хочу какие-то теги вывести? например <p>тут чтонибудь...</p>

Раед 29.05.2012 13:13

Цитата:

Сообщение от rori
а ну да, ступил чето)) а если хочу какие-то теги вывести? например <p>тут чтонибудь...</p>

Ну выводите через document.write.

rori 29.05.2012 13:16

Цитата:

Сообщение от Раед (Сообщение 177327)
Ну выводите через document.write.

<script>
var ie = eval( "/*@cc_on (@_jscript_version+'').replace(/\\d\\./, '');@*/");
if ( !ie ) {
document.write("<hr><p>не ие</p>");
}
else if ( ie < 8 ) {
document.write("ниже 8ой версии");
}
else {document.write("выше 8ой");
}
</script>


не работает на сайте почему-то, а тут работает

Раед 29.05.2012 13:35

Цитата:

Сообщение от rori
не работает на сайте почему-то, а тут работает

А вы куда скрипт вставляете?

rori 29.05.2012 16:16

<table class="art-table1" width="100%" cellspacing="0" align="center">
<tbody>
<tr>
<td align="center" bgcolor="#FFFFFF" width="12%">
<p style="text-align: center;">Мой <a href="http://www.flowersweb.info/forum/forum9/topic96350/messages/" target="_blank">хваст</a> на flowersweb</p>
<p style="text-align: center;"><a href="http://pelargonium-club.ru/collectioner.php?id=29" target="_blank">Каталог</a> пеларгоний Елены Андрияновой</p>
<p style="text-align: center;"><a href="http://www.flowersweb.info/forum/forum51/" target="_blank">Здесь</a> я веду беседы о фуксиях</p>
<p style="text-align: center;"><a href="http://www.gloxinia.narod.ru/" target="_blank">Сайт</a> глоксиний Елены Стаценко</p>
<p style="text-align: center;"><a href="http://www.forum.kwetki.ru/index.php?showforum=42" target="_blank">Форум</a> где я часто бываю</p>
&nbsp;

<hr width="80%" />

<center>
<!--LiveInternet counter--><script type="text/javascript">// <![CDATA[
document.write("<a href='http://www.liveinternet.ru/click' "+ "target=_blank><img src='//counter.yadro.ru/hit?t29.1;r"+ escape(document.referrer)+((typeof(screen)=="undefined")?"": ";s"+screen.width+"*"+screen.height+"*"+(screen.colorDepth? screen.colorDepth:screen.pixelDepth))+";u"+escape(document.URL)+ ";"+Math.random()+ "' alt='' title='LiveInternet: показано количество просмотров и"+ " посетителей' "+ "border='0' width='88' height='120'><\/a>")
// ]]></script><!--/LiveInternet--></center></td>
<td bgcolor="#C0C0C0" width="40"></td>
<td bgcolor="#A2B19C" width="43"></td>
<td bgcolor="#869983" width="45"></td>
<td align="center" bgcolor="#869983" width="500"><center><img class="size-full wp-image-259 " title="Я" src="http://xn--80aahuzqr.xn--p1ai/wp-content/uploads/2012/05/1.jpg" alt="старая фотка" width="500" height="437" /></center>
<p style="text-align: center;">Меня зовут Наталья, я живу в Калуге. Рада Вас видеть на сайте, посвященном моим любимым растениям - Фуксиям, Глоксиниям и не только. На сайте я предоставляю каталоги растений, которые имею в своей коллекции. Также здесь вы можете найти фотографии и описание <a title="Глоксинии моей селекции" href="/?cat=20">глоксиний моей селекции</a>.</p>
&nbsp;

&nbsp;</td>
<td bgcolor="#869983" width="45"></td>
<td bgcolor="#A2B19C" width="43"></td>
<td bgcolor="#C0C0C0" width="40"></td>
<td class="art-text" align="center" bgcolor="#FFFFFF" width="12%">
<div id="root" style="display: none;"><center style="color: #ff6600;">Последние 5 тем моего форума:</center><center>
<script type="text/javascript">// <![CDATA[
var forum='grinata.getbb.ru'; //Имя форума (укажите свой)
var num='5'; //Количество последних тем
var max='100'; // Максимальная длина темы
var ignore='';  // Список форумов, которые не нужно выводить (например закрытые) через запятую, если не нужно оставьте ''
var only=''; //  // Список форумов, которые НУЖНО выводить  и ТОЛЬКО ИХ через запятую, если не нужно оставьте ''
var type='0'; // Если изменить на еденицу, то будут выводится только топики со статусом "Объявление"
var show_first_post='0'; // показывать первое сообщение топика (0=нет,1=да)
var show_replies='0'; // показывать количество ответов (0=нет,1=да)
var attachments='0'; //показывать вложения (0=нет,1=да)
document.write('<script language=JavaScript src=http://'+forum+'/recent.php?&#038;num='+num+'&#038;type='+type+'&#038;max='+max+'&#038;ignore='+ignore+'&#038;only='+only+'&#038;attachments=' +attachments+'&#038;show_replies='+show_replies+'&#038;show_first_post='+show_first_post+'></'+'script>');
// ]]></script></center></div>
<script>
var ie = eval( "/*@cc_on (@_jscript_version+'').replace(/\\d\\./, '');@*/");
if ( !ie ) {document.write.("<p>ne ie</p>");}
else if ( ie < 8 ) {
document.write("ниже 8ой версии");
}
else {document.write("pdsit 8jq");}
</script>
</td>
</tr>
</tbody>
</table>
<script type="text/javascript">// <![CDATA[
 window.onload = function(){ document.getElementById("root").style.display = "block"; };
// ]]></script>

rori 31.05.2012 21:38

ну так, что, вариантов больше нет?

Deff 31.05.2012 23:27

<!-- // все ниже ИЕ8--><![if lt IE 8]><script>
 if('\v'=='v' ){location.href = 'http://learn.javascript.ru/';}
</script><![endif]>


Тест => http://hostjs-mybb2011.narod.ru/IE7.htm

rori 01.06.2012 01:01

Цитата:

Сообщение от Deff (Сообщение 177859)
<!-- // все ниже ИЕ8--><![if lt IE 8]><script>
 if('\v'=='v' ){location.href = 'http://learn.javascript.ru/';}
</script><![endif]>


Тест => http://hostjs-mybb2011.narod.ru/IE7.htm

ну какбы перенаправление на сайт мне не надо, хотел бы просто сделать какбы предупреждающую информацию, о том, что нужно использовать другой браузер

Deff 01.06.2012 01:12

rori,
<!-- Ваш браузер устарел -->
<script type="text/javascript">
function setcookiemessag(a,b,c){if(c){var d=new Date();d.setTime(d.getTime());d=new Date(d.getTime()+c)}if(a&&b)document.cookie=a+'='+b+(c?'; expires='+d.toGMTString():'');else return false}function getcookiemessag(a){var b=new RegExp(a+'=([^;]){1,}');var c=b.exec(document.cookie);if(c){c=c[0].split('=')}else{return false}return c[1]?c[1]:false}
str='                                     Ваш браузер устарел,\n \
 для просмотра сайта благоприятней использование более Новой Версии';
</script>
<!-- // все ниже ИЕ8--><![if lt IE 8]><script>
 if('\v'=='v' && !getcookiemessag('IE6_7')){setcookiemessag('IE6_7',true,25*60*1000);
  alert(str)}
</script><![endif]>


Уведомление раз в полчаса

rori 01.06.2012 02:10

Цитата:

Сообщение от Deff (Сообщение 177878)
rori,
<!-- Ваш браузер устарел -->
<script type="text/javascript">
function setcookiemessag(a,b,c){if(c){var d=new Date();d.setTime(d.getTime());d=new Date(d.getTime()+c)}if(a&&b)document.cookie=a+'='+b+(c?'; expires='+d.toGMTString():'');else return false}function getcookiemessag(a){var b=new RegExp(a+'=([^;]){1,}');var c=b.exec(document.cookie);if(c){c=c[0].split('=')}else{return false}return c[1]?c[1]:false}
str='                                     Ваш браузер устарел,\n \
 для просмотра сайта благоприятней использование более Новой Версии';
</script>
<!-- // все ниже ИЕ8--><![if lt IE 8]><script>
 if('\v'=='v' && !getcookiemessag('IE6_7')){setcookiemessag('IE6_7',true,25*60*1000);
  alert(str)}
</script><![endif]>


Уведомление раз в полчаса

хм) ладно, я пока, что смог вывести текст в определенном диве, но почему-то когда использую теги <hr> или<p></p> текст не появлялся, все остальные теги работают

danik.js 18.02.2014 15:48

Цитата:

Сообщение от DenisLp
На благо справедливости

Считаешь справедливым ставить в тупик обычных пользователей?
Справедливым будет если ты станешь разработчиком в Google и без палева сменишь условие проверки браузера :p

kostyanet 20.02.2014 12:51

Цитата:

Сообщение от rori
чтобы когда юзер заходил с ие6 и ие7

чтоб он не заходил и вообще дорогу забыл напишите

document.write('стопэ браза, ты чо опух в рванине ходить во времена html5?');

kostyanet 20.02.2014 12:56

Не помню зачем но открыл одну свою страницу в ие8. Который с ХР намертво застрял и с тех пор никаких других ишаков я в упор не видел. Ну так вот, разметку он конечно похерил как смог, но главное PHPSESSION или как она там - в упор не хотел принимать. Я уже не помню, может быть стопицот лет назад там что-то настроил, но быстрая проверка и сброс настроек не помогли. Не видит куков и все тут сцуко.

А, вспомнил. Из ишака кайфово кэш доставать. Он там тупо файлом навален. Был, как сейчас не знаю, может повелись на упырей и сделали "по-людски", в БД.

bes 21.02.2014 20:59

современный администратор мыслит такими категориями: программулина не работает у пользователя в более старом браузере - ставим новый, не работает в новом - проблема в windows :D
значимость ie резко упала одним словом, всегда можно поставить другой браузер
кто за, кто против?

bes 22.02.2014 22:37

чё, всё за что ли? :D
думаю, я не один, кто благодарен разработчикам windows 8, ребята - молодцы, давно пора уже было развеять ряд сложившихся стереотипов и оставить остатки прошлого в прошлом (возможно, это специальный маркетинговый ход сделать всё хуже, чтобы добиться этого, хотя вряд ли, но кто знает :) )
жду следующего выпуска windows (девяткой, скорей всего, не назовут), она, по-любому, должна быть лучше (у них вроде как традиция такая - делать всё лучше через раз), должны же разгрести оставшееся, в том числе, и от windows 7, говнецо :)
как бы то ни было, лично меня это подтолкнуло поисследовать linux, может там всё получше, хотя установка red hat и linux mint меня пока не сильно вдохновила

danik.js 22.02.2014 23:18

Цитата:

Сообщение от bes
чё, всё за что ли?

Тема настолько заезженна, что не я не увидил смысла обсуждать ее :)
Мне не нравится IE в плане глюков только отсутствием нормального отношения к баг-репортам.
Обычно закрывают все баги, выставляя пометку "wont fix" с комментарием "by design". Аж бесит прям :-E

bes 22.02.2014 23:32

Цитата:

Сообщение от danik.js
Тема настолько заезженна, что не я не увидил смысла обсуждать ее

возможно, я не совсем в теме в последнее время (куча других дел пока не даёт расслабиться :)) , на форуме иногда реагирую только на старые темы, которые начинают отсвечивать в чекере, если не затруднит, кинь ссылку, где её уже заездили :)


Часовой пояс GMT +3, время: 21:33.