我遇到的问题是供应商只使用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'; });
有谁知道怎么做?也许创建一个窗口,更改用户代理,然后打开窗口。
答案 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');
}
};