Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Определение браузера

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нашел на просторах рунета код определяющий браузер, немного его обновил, вот что получилось. (js)

Код:
 
function browser(){
        var ua = navigator.userAgent;
        if (ua.search(/MSIE/) > 0) return 'Internet Explorer';
        if (ua.search(/Trident/) > 0) return 'Internet Explorer';
        if (ua.search(/Firefox/) > 0) return 'Firefox';
        if (ua.search(/Opera/) > 0) return 'Opera';
        if (ua.search(/OPR/) > 0) return 'Opera';
        if (ua.search(/Chrome/) > 0) return 'Google Chrome';
        if (ua.search(/Safari/) > 0) return 'Safari';
        if (ua.search(/Konqueror/) > 0) return 'Konqueror';
        if (ua.search(/Iceweasel/) > 0) return 'Debian Iceweasel';
        if (ua.search(/SeaMonkey/) > 0) return 'SeaMonkey';
        if (ua.search(/Gecko/) > 0) return 'Gecko';
 
            return 'Search Bot';
}
 

Стоит ли доверять полученной информации от такой функции. И попутно еще один вопрос, развелось в рунете говносборок браузеров типа yandex и mail. Я так понимаю, что от chrome они не отличаются в плане функциональности?

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 22:40 19-08-2013 | Исправлено: Cheery, 21:36 20-08-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011
этому доверять никогда нельзя - все можно подменить.
зачем вообще надо?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:00 19-08-2013
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ну например:

Код:
 
<script>
$(document).ready(function(){
function openPage(uri){
$.ajax({
type: "POST",
url: "content.php",
data: { uri: uri, },
cache: false,
success: function(data){
$("#content").empty();
$("#content").append(data);
}
});
};
});
</script>
 

Так вот в firefox и IE мы ничего не увидим пока не добавим, перед функцией  

Код:
 
<script>
$(document).ready(function(){
 openPage();
});
</script>
 

а chrome и opera при таком раскладе сделают запрос дважды.

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 08:33 20-08-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011

Цитата:
Так вот в firefox и IE мы ничего не увидим пока не добавим, перед функцией  

???
а с чего вы должны увидеть где то еще без вызова самой функции?
сдается мне, что тут дело не в браузере, а в корявости кода.
 
ps: http://jsfiddle.net/tHpke/
ну, в каком браузере показывается alert?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 08:36 20-08-2013 | Исправлено: Cheery, 08:38 20-08-2013
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
Я неудачный пример привел. Вот так:

Код:
 
$(document).ready(function(){
var thisUri = getThisUri();
history.replaceState({uri:thisUri}, null, thisUri);
$(window).bind('popstate', function(event) {
   openPage(history.state.uri);
});
function openPage(uri){
// тут ajax грузит данные
};
function getThisUri(){
       var loc = window.location;
        return loc.href;
}
});
 

Так вот в firefox и IE, нужно вызвать функцию openPage причем передав ей переменную thisUri, а chrome и opera, почему то грузят данные без вызова функции thisUri.
А что на счет, браузеров от yandex и mail? Они как chrome?

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 14:35 20-08-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011

Цитата:
Так вот в firefox и IE, нужно вызвать функцию openPage причем передав ей переменную thisUri, а chrome и opera, почему то грузят данные без вызова функции thisUri.  

потому, что возможно, у вас обработка
Цитата:
$(window).bind('popstate', function(event) {  
уже включена из другого места. вот при изменении history и срабатывает событие.
ссылку дайте.


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:56 20-08-2013
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
http://test.taxi-69.ru

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 08:52 21-08-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011
ну и, ессно, описание как воспроизвести проблему.

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 08:55 21-08-2013
koreets2011



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Просто зайти IE или FireFox, посмотреть.
Зайти Chrome или Opera.

Всего записей: 410 | Зарегистр. 13-10-2011 | Отправлено: 10:30 21-08-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
koreets2011
для начала - неплохо бы убрать кучу ошибок при подключении js с посторонних сайтов. это сильно мешает.
 
разница в том, что некоторые браузеры генерят событие popstate после загрузки страницы.
 
попробуйте изменить на  
 

Код:
$(window).bind('popstate', function(event) {  
if (!event.state.uri) return;    
openPage(history.state.uri);  
});  

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

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 19:16 21-08-2013 | Исправлено: Cheery, 19:17 21-08-2013
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Определение браузера


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru