JS Open Window和Alter User Agent

时间:2014-05-11 23:51:45

标签: javascript window user-agent

我遇到的问题是供应商只使用IE浏览器。我打开一个窗口并传递凭据。如果是Chrome / FireFox /等,则会阻止它。我能够成功地更改用户代理以模仿IE,但不能打开窗口组合。

openWindow('https://www.IEOnlyVendor.com?credentials=abc123');
var __originalNavigator = navigator; // alter user agent string to IE 11
navigator = new Object();
navigator.__proto__ = __originalNavigator;
navigator.__defineGetter__('userAgent', function () { return 'Mozilla/5.0 (Windows NT 6.1;     WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; MDDR; MS-RTC LM 8; rv:11.0) like Gecko'; }); 

有谁知道怎么做?也许创建一个窗口,更改用户代理,然后打开窗口。

1 个答案:

答案 0 :(得分:1)

可能能够尝试类似于this answer更改 iframe 的用户代理的方式。

重要部分(我添加了contentWindow param以便你可以(?)调用新窗口):在将内容注入空窗口后调用此函数。

    var setUA = function(contentWindow) {
        if (Object.defineProperty) {
            Object.defineProperty(contentWindow.navigator, 'userAgent', {
                configurable: true,
                get: function () {
                    return 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5';
                }
            });
        } else if (Object.prototype.__defineGetter__) {
            contentWindow.navigator.__defineGetter__('userAgent', function () {
                return 'Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_2 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8H7 Safari/6533.18.5';
            });
        } else {
            alert('browser not supported');
        }
    };