我知道在网站上禁用 JavaScript 会阻止任何脚本运行——我将获得原始的、未经评估的网站内容。
但是当我在 Chrome 上禁用 JavaScript 时twitter.com
,我被重定向到mobile.twitter.com
。我无法使用debugger
或类似方法暂停浏览器加载,因为 JavaScript 已被禁用。而且重定向发生得太快了。(这更加烦人,因为我无法返回twitter.com
取消禁用 JavaScript!)
那么 Twitter 怎么样
- 检测到我已禁用 JavaScript,并且
- 不使用 JavaScript 来执行重定向?
并且,我该如何阻止这种情况发生?
编辑:Twitter 现在在重定向前有一个确认屏幕,但过去它会自动进行重定向而没有任何提示。我想知道他们是如何做到的。
答案1
并非所有重定向都基于 JavaScript 或需要浏览器主动参与。
实现此目的的一种方法是通过“元刷新“页面设置为立即刷新到另一个页面,在您的情况下是移动网站。
那么 Twitter 怎么知道要给你这个页面呢?因为你的浏览器告诉它这么做。每次请求文档时,你的浏览器都会发送一个用户代理告诉网站浏览器、操作系统和版本详细信息的字符串。
用户代理字符串旨在使 Web 服务器能够检测并发送请求设备专门支持的网页版本。过去,这样做是为了制作针对不同浏览器对功能的支持程度不一的网站。
但这意味着他们可以轻松检测移动用户并将其重定向到更友好的界面。
为了解决这个问题,大多数浏览器可以设置为“请求桌面站点”,这会改变它们的用户代理字符串以假装您的设备是桌面浏览器。