Поддельный агент пользователя для iframe

Я новичок в Javascript. Я нашел этот код для изменения пользовательского агента с помощью Javascript.

var __originalNavigator = navigator;
navigator = new Object();
navigator.__defineGetter__('userAgent', function () {
    return 'Custom';
});

var iframe='<iframe id="frame" name="widget" src ="http://www.useragentstring.com/" width="100%" height="400" marginheight="0" marginwidth="0" frameborder="no" scrolling="no"></iframe>';        

document.write("User-agent header sent: " + navigator.userAgent + iframe);   

Этот код работает и возвращает фальшивый агент пользователя. Хотя, как я установлю такой же поддельный агент для iframe?

Вот скрипка того, что я делаю: http://jsfiddle.net/ufKBE/1/

Ответ 1

Я уже отвечаю на тот же вопрос в < Загружать содержимое iframe с помощью другого пользовательского агента >

Для вашего удобства я скопировал и вставил здесь ответ:

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

function setUserAgent(window, userAgent) {
    if (window.navigator.userAgent != userAgent) {
        var userAgentProp = { get: function () { return userAgent; } };
        try {
            Object.defineProperty(window.navigator, 'userAgent', userAgentProp);
        } catch (e) {
            window.navigator = Object.create(navigator, {
                userAgent: userAgentProp
            });
        }
    }
}

Затем вам нужно настроить таргетинг на элемент iframe:

setUserAgent(document.querySelector('iframe').contentWindow, 'MANnDAaR Fake Agent');

Вы также можете установить идентификатор в iframe и указать идентификатор вместо всех элементов iframe на странице.

Ответ 2

Это неправильный способ переключения вашего агента пользователя на поддельный. window.navigator = {userAgent:Custom_User_Agent} - это просто выполнение javascript. Он будет просто проигнорирован при обновлении страницы, будь то в окне или в iframe, а затем пользовательский агент по умолчанию, который будет отправлен на сервер. Если вы действительно хотите переключить свой пользовательский агент, это должна быть настройка браузера, с которой вы имеете дело. Некоторые браузеры допускают это в своих настройках, а некоторые другие включают в себя переключатель пользовательского агента или поддерживают какой-то плагин, который делает это

http://www.howtogeek.com/113439/how-to-change-your-browsers-user-agent-without-installing-any-extensions/

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

Другой способ - использовать AJAX. но, конечно, он ограничен политикой перекрестного происхождения