假用户代理的IFRAME(Fake User Agent for iframe)

2019-06-27 05:47发布

我是新来的JavaScript。 我发现这个代码使用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的?

下面是什么我到小提琴: http://jsfiddle.net/ufKBE/1/

Answer 1:

那是不是你的用户代理切换到伪造一个正确的方式。 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。 但当然是通过跨域政策限制



Answer 2:

我已经回答在<同一个问题加载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');

您也可以设置一个ID为iframe和目标的ID,而不是页面上的所有iframe元素。



文章来源: Fake User Agent for iframe