iframe的假用户代理 [英] Fake User Agent for iframe
问题描述
我是Javascript的新手。我发现此代码使用Javascript更改用户代理。
I'm new to Javascript. I have found this code to change user agent using 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设置相同的假用户代理?
This code works & returns fake user agent, Though how will I set same fake user agent for iframe ?
以下是我要做的事情: http://jsfiddle.net/ufKBE/1/
Here is fiddle of what I'm up to : http://jsfiddle.net/ufKBE/1/
推荐答案
我已经在< 使用不同的用户代理加载iframe内容>
I already answer the same question at <Load iframe content with different user agent>
为方便起见,我复制并粘贴了答案:
For your convenient, I copied and paste the answer here:
首先,您必须创建一个函数来更改用户代理string:
First of all, you must create a function to change the user agent string:
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元素:
Then you need to target the iframe element:
setUserAgent(document.querySelector('iframe').contentWindow, 'MANnDAaR Fake Agent');
您还可以为iframe设置ID并定位ID而不是页面上的所有iframe元素。
You may also set an ID to the iframe and target the ID instead of all iframe elements on the page.
这篇关于iframe的假用户代理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!