iframe的假用户代理

我是Javascript的新手。 我发现此代码使用Javascript更改用户代理。

var __originalNavigator = navigator; navigator = new Object(); navigator.__defineGetter__('userAgent', function () { return 'Custom'; }); var iframe=''; document.write("User-agent header sent: " + navigator.userAgent + iframe); 

此代码可以运行并返回假用户代理,虽然如何为iframe设置相同的假用户代理?

这是我要做的事情的小提琴: http : //jsfiddle.net/ufKBE/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设置ID并定位ID而不是页面上的所有iframe元素。

这不是将用户代理切换到伪造用户代理的正确方法。 window.navigator = {userAgent:Custom_User_Agent}只是一个javascript执行。 当您刷新页面时,它将被忽略,无论是在窗口上还是在iframe中,然后是默认的用户代理,而不是将其发送到服务器。 如果您真的想切换用户代理,则必须是您要处理的浏览器设置。 有些浏览器允许在他们的设置上使用它,而其他一些浏览器包括用户代理切换器或支持某种类型的插件

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

替代方案是,您也可以尝试从服务器访问网站或构建自己的Web访问应用程序。 通过这些方式,您可以自由更改标题或使用自己的自定义用户代理

另一种方法是使用AJAX。 但当然它受到跨省政策的限制