Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   User Agent & Javascript (https://javascript.ru/forum/misc/23889-user-agent-javascript.html)

Vampir3 10.12.2011 14:49

User Agent & Javascript
 
всем привет. подскажет кто, возможно ли изменить User Agent с помощью букмарклета (JS кода, который вводится в строку браузера)...пробовал сделать так:

javascript:navigator.userAgent="Mozilla/5.0 (compatible; MSIE 7.0; )";void 0;

но ничего не вышло

обрыл гугл, ничего хорошего не нашел..

trikadin 10.12.2011 15:34

Это readonly св-во.

GuardCat 12.12.2011 11:18

А сам объект navigator не read only.

function setUserAgent(txt) {
	var fakeNavigator = {}, oldNavigator = {}, x;
	for (x in navigator) {
		fakeNavigator[x] = (x != "userAgent") ? navigator[x] : fakeNavigator[x] = txt;
	}
	oldNavigator = navigator;
	navigator = fakeNavigator;
	return oldNavigator;
}
setUserAgent("ie 1.0 win 3.11 compatible");
alert(navigator.userAgent);

Возвращает старый объект navigator, на случай, если он вам будет нужен.

FINoM 14.12.2011 05:45

GuardCat, хах, круто, не знал.

рони 14.12.2011 06:12

GuardCat,
ие вылетел с ошибкой ... фф вернула прежнее значение ... опера сработала на ваш код

GuardCat 14.12.2011 06:46

На совместимость не проверял, да. Chrome тоже переварил нормально.

devote 14.12.2011 06:58

Цитата:

Сообщение от рони
ие вылетел с ошибкой ...

ИЕ это ИЕ
Цитата:

Сообщение от рони
фф вернула прежнее значение

Старый объект нужно было сохранить в глобальной области, после выполнения функции понятно дело что коллекция восстановилась... Но это лишь предположение. Не буду утверждать.

GuardCat 14.12.2011 10:25

Потестировал в IE8 и FF. Могу предположить, что в этих браузерах navigator таки readonly, но у них разное поведение: ie генерит ошибку, а FF молча отклоняет запрещённые действия, что, пожалуй, даже хуже чем ошибка.

trikadin 14.12.2011 15:26

Цитата:

Сообщение от GuardCat
FF молча отклоняет запрещённые действия, что, пожалуй, даже хуже чем ошибка.

Он себя всегда так ведёт, кстати. Например (смотреть в ff):

document= null;
alert(document)
window= null;
alert(window);

GuardCat 14.12.2011 17:47

Цитата:

Сообщение от trikadin
Например (смотреть в ff):

И Chrome 16 туда же... Молча ничего не сделал.
IE8 честно ругается.


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