如何可以欺騙navigator.platform對瀏覽器,Firefox或Internet Explorer(優選鍍鉻)的值?看起來它本來可以在Firefox上使用,但是這種支持已經被刪除了。更改navigator.platform測試OS檢測碼
這是測試在它運行在有條件的JavaScript支票測試navigator.platform財產網站一些代碼。不幸的是,它沒有測試userAgent,這很容易改變。
我試着寫在https://groups.google.com/a/chromium.org/forum/#!topic/chromium-discuss/8cCllrVX4kI第二後每建議一個簡單的Chrome擴展,但它不工作(我包括我試過下面的代碼)。如果我在擴展中使用console.log(navigator.platform),它會根據需要打印出「MacIntel」,但如果在頁面加載後在控制檯中鍵入navigator.platform,它會顯示「Win32」(即我的實際操作系統不想說)。
//navigator_change.js
Object.defineProperty(navigator,"platform", {
get: function() { return "MacIntel"; },
set: function (a) {}
});
//manifest.json
{
"manifest_version": 2,
"content_scripts": [ {
"js": [ "navigator_change.js" ],
"matches": [ "<all_urls>"],
"run_at": "document_start"
} ],
"converted_from_user_script": true,
"description": "Fake navigator.platform",
"name": "MacFaker",
"version": "1"
}
變量/內容腳本對象/功能從網頁中分離,所以你需要注入DOM腳本元素:構建一個Chrome擴展 - 使用內容腳本在頁面注入代碼(HTTPS:/ /stackoverflow.com/q/9515704) – wOxxOm
@wOxxOm謝謝 - 我遵循你的建議,它的工作原理。我發佈了完整的代碼作爲答案。 – g491