我对仅使用 IE 的 vendor 有疑问。我正在打开一个窗口并传递凭据。如果是 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'; });
有人知道该怎么做吗?也许创建一个窗口,更改用户代理,然后打开该窗口。
最佳答案
您也许可以尝试类似this answer的方法更改iframe的用户代理。
重要部分(我添加了 contentWindow
参数,以便您可以(?)在新窗口上调用):在将内容注入(inject)空窗口后调用此函数。
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');
}
};
关于javascript - JS 打开窗口并更改用户代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23599176/