【发布时间】:2021-01-19 14:02:01
【问题描述】:
我正在尝试访问一个网站,但它不允许我这样做,因为它不支持我的浏览器。我相信它正在通过 userAgent 检测来检测我的浏览器。所以我想创建一个 userScript 来修改我的 userAgent,这样网站就无法检测到我的浏览器。我试过了:
// ==UserScript==
// @name Change UserAgent
// @namespace http://tampermonkey.net/
// @version 0.1
// @description Spoofs the userAgent
// @author You
// @include *
// @run-at document-start
// ==/UserScript==
Object.defineProperty(navigator, 'userAgent', {
value: "MyCustomUserAgent",
configurable: false
});
尽管它向我显示 userAgent 是一个自定义值,但我相信对 userAgent 的请求在我欺骗它之前已经完成。有什么方法可以在不使用扩展的情况下做到这一点?谢谢。
【问题讨论】:
-
为什么不使用内置的浏览器工具呢?它们允许用户代理欺骗。 --- 老实说,网站需要停止这种“我们不支持您的浏览器”bs。
-
@evolutionbox,我可以在不支持我的浏览器的不同网站上运行用户脚本,但在其他不支持此类操作的网站上禁用它。
-
@evolutiobox 事情是 general.userAgent.override 不起作用,因为我没有使用 firefox,虽然 userAgent spoofer 扩展非常有用,但我希望 userScript 有更简单的方法.不过感谢您的帮助!
-
当然,请求是在您更改用户代理之前完成的。您可能正在该请求产生的页面上运行此脚本。大多数允许用户代理欺骗的常见浏览器都有许多浏览器插件。或者你甚至可以自己写一个。但是在已经加载的页面上执行代码将无济于事,因为 1)为时已晚 2)一旦刷新页面,它就消失了......
标签: javascript user-agent detection userscripts spoofing