簡體   English   中英

iframe的假用戶代理

[英]Fake User Agent for iframe

我是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/

這不是將用戶代理切換到偽造用戶代理的正確方法。 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。 但當然它受到跨省政策的限制

我已經在< 使用不同用戶代理加載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元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM