亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在JavaScript中模擬用戶代理?

在JavaScript中模擬用戶代理?

皈依舞 2019-11-27 14:27:13
我正在尋找一種以編程方式實時更改navigator.userAgent的方法。在我無法獲得自動化javascript單元測試器的嘗試中,我放棄了嘗試嘗試使用fireunit。立刻,我陷入了使用實際瀏覽器進行JavaScript測試的一堵墻。具體來說,我需要更改navigator.userAgent以模擬數百個userAgent字符串,以確保對給定函數進行正確的檢測和覆蓋。navigator.userAgent是只讀的,所以我似乎卡住了!如何模擬navigator.userAgent?用戶代理切換器(插件)可以切換FF的用戶代理,但是我可以在JavaScript中進行切換嗎?
查看完整描述

3 回答

?
慕娘9325324

TA貢獻1783條經驗 獲得超4個贊

嘗試:


navigator.__defineGetter__('userAgent', function(){

    return 'foo' // customized user agent

});


navigator.userAgent; // 'foo'

在FF2和FF3中進行了嘗試。


查看完整回答
反對 回復 2019-11-27
?
收到一只叮咚

TA貢獻1821條經驗 獲得超5個贊

以下解決方案可在Chrome,Firefox,Safari,IE9 +和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

            });

        }

    }

}

例子:


setUserAgent(window, 'new user agent');

setUserAgent(document.querySelector('iframe').contentWindow, 'new user agent');


查看完整回答
反對 回復 2019-11-27
  • 3 回答
  • 0 關注
  • 1248 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號