iframe的假用户代理 [英] Fake User Agent for iframe

查看:1729
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆