- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我访问的网站中,有一些代码用于检查用户代理,如果不是 IE,它将重定向到另一个网站。
if( ! window.navigator.appVersion.match(/MSIE ([0-9]+.)[A-Za-z0-9.]+;/) || new Number(parseFloat (RegExp.$1)) < 5.5 ){
window.location.replace("/iedownload.htm");
}
有没有办法制作一个快速的greasemonkey脚本来欺骗用户代理?我试过了
GM_xmlhttpRequest({
method: 'GET',
url: window.location.href,
headers: {
'User-Agent': 'Mozilla/4.0 (compatible; MSIE 9.0;) Greasemonkey',
'Accept': '*/*',
},
});
但是没有成功。
最佳答案
简单的方法是不使用 GreaseMonkey,而是使用在发送请求之前修改 UserAgent 的附加组件。如果检查是在服务器端进行的,则此方法将不起作用。
但无论如何,你可以尝试Max建议的here .
所以,像这样:
var fakeAppVersion = function () {
return "MSIE 9.0;";
};
if (Object.defineProperty) {
Object.defineProperty(navigator, "appVersion", {
get: fakeAppVersion
});
} else if (Object.prototype.__defineGetter__) {
navigator.__defineGetter__("appVersion", fakeAppVersion);
}
记得使用 //@run-at 文档开始
编辑:我想如果在该片段有机会运行之前完成检查,这可能不起作用。在这种情况下,您可以像尝试一样使用 GM_xmlhttpRequest,但将其在新选项卡中打开。 [我猜您可能需要禁用该网站的弹出窗口拦截器]。
Greasemonkey 的安全性已经变得相当烦人(至少在我正在测试的 Firefox 上),Brock 解决了这个问题 here 。修改他的代码以满足您的需求,我得到了这个(据我所知有效):
if (window.location.href != 'about:blank') {
GM_xmlhttpRequest({
method: 'GET',
url: window.location.href,
headers: {
'User-Agent': 'Mozilla/4.0 (compatible; MSIE 9.0;) Greasemonkey',
'Accept': '*/*',
},
onload: function(response){
var data = response.responseText;
addJS_Node (null, null, fireNewTab, data, fireNewTab );
}
})
function fireNewTab (data) {
var newTab = window.open ('about:blank', '_blank');
newTab.addEventListener (
"load",
function () {
//--- Now process the popup/tab, as desired.
var destDoc = newTab.document;
destDoc.open ();
destDoc.write (decodeURI(data));
destDoc.close ();
},
false
);
}
function addJS_Node (text, s_URL, funcToRun, data, runOnLoad) {
var D = document;
var scriptNode = D.createElement ('script');
if (runOnLoad) {
scriptNode.addEventListener ("load", runOnLoad, false);
}
scriptNode.type = "text/javascript";
if (text) scriptNode.textContent = text;
if (s_URL) scriptNode.src = s_URL;
if (funcToRun) scriptNode.textContent = '(' + funcToRun.toString() + ')("' + encodeURI(data) +'")';
var targ = D.getElementsByTagName ('head')[0] || D.body || D.documentElement;
targ.appendChild (scriptNode);
}
}
当然,您需要//@grant GM_xmlhttpRequest..
关于javascript - Greasemonkey 欺骗用户代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28861689/
关闭。这个问题是off-topic .它目前不接受答案。 想改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 关闭 11 年前。 Improve thi
我有一个只适用于火线摄像头的第三方视觉库,是否有可能以某种方式欺骗 libdc1394 认为连接了火线摄像头但通过 v4l 从 USB 网络摄像头传递帧? 最佳答案 鉴于 stackoverflow
在浏览网页时,我需要为我正在查看的网站伪造我的屏幕分辨率,但保持我的视口(viewport)不变(Chrome 或 FF 的模拟无法解决我的问题)。 例如,如果我转到 http://www.whati
假设情况。我在 *nix(linux、BSD 等)中有一个命令行程序。编写它是为了让您将文本文件作为参数传递给它 $ program file.txt 运行程序,它会查看 file.txt 中的文本。
我从欺骗中搜索了 proctecting .net 程序集并找到了 this post很有用。但是,我在帖子中看到了一个非常明显的矛盾。有一点表明,如果用户是同谋,强名称就没有用: But if th
我有一个已加密的 JWT,希望存储在 HttpOnly 安全 cookie 中并通过 SSL 发送。但是,由于我在第一次访问我的网站时没有设置 cookie,那么在我创建 cookie 之前,如何阻止
我想制作一个应用程序,作为第三方应用程序的便捷入口点,使用我的参数启动其 Activity 之一,而不是单击它来执行相同的操作。我对第三方应用程序有一些了解:我需要一个带有单个 .putExtra 的
我将 HtmlAgilityPack 用作自动化流程的一部分,以从现有内部网页中提取内容。问题是我需要让它认为 IsPostBack 是真的。 这是流程: 对页面进行初始调用并提取 HTML。 解析
我在 ARM Cortex-M0 的一些旧版 ROM 代码中遇到了挑战 ROM 代码有其数据存储部分,并且在某些时候它通过函数指针列表从其他 volatile 存储器调用函数。 我目前已用完添加代码的
我一直想知道是否有一种方法可以欺骗导航器、屏幕等 JS 对象,以便在页面请求时发送虚假数据。 我使用 C# 开发一个包含 GeckoFx 浏览器的应用程序,我想做这样的事情:每次我打开一个包含 JS
我想知道是否有一种方法可以将 SuperType 数组转换为 SubType 数组。像这样: SubType[] subArray = (SubType[])someSuperTypeArray; 我
我的所有功课都使用平板电脑,因为我没有一台好电脑,但网站通常以移动设备格式出现。有没有办法设置我的浏览器来告诉网站它是一台电脑,而不是平板电脑?如果可能的话,这是否会导致任何其他问题,例如禁用触摸屏或
我想按照类(class)大纲学习这个概念。我需要一些想法来进行 ICMP 欺骗。我在网上找到了 ICMP 欺骗程序,但我必须这样做:当主机 ping 一个未知的 ip 地址时,无论它是否存在,都必须有
我正在使用 PayPal Hosted Pages 构建一个注册系统。据我了解,我可以使用 Silent POST 功能让我的应用程序知道托管结帐页面上何时发生了成功的交易。我担心可能会欺骗此 POS
我正在尝试编写一个应用程序,它只是作为一个已经存在的网站的界面。没有 API,因此将进行大量的 POSTing、GETing 和 XML 解析。 问题 1:“您需要在浏览器中启用 JavaScript
我们已经使用带有设置 cookie 的 PHP 创建了一个数据库驱动的网站,现在需要防止 HTTP 欺骗,关于如何做到这一点有什么想法吗?我们是这方面的初学者,所以任何帮助都会很棒 最佳答案 您不能“
如果我将这两者都放入数据库中,是否足以防止站点访问者欺骗他们来自不同的 IP 地址? $ip1 = $_SERVER['HTTP_X_FORWARDED_FOR']; $ip2 = $_SERVER[
当我在一些表之间进行内部联接时,我遇到了一些查询抛出重复的问题。 本质上,我加入了一些标签,以及基于 videoId 的 channel (想想流派),这样一个特定的视频文件就可以有多个标签并成为多个
据我所知,没有什么可以限制任何开发人员对他们的信标进行编程以使用特定的 UUID、主要、次要或标识符。 如果我创建一个 UUID 为“foo”的 iBeacon,如何防止其他开发人员创建具有相同 ID
我希望构建一个简单的服务器来代理我网络网关处的 TCP 连接(无恶意),但 TCP 握手失败。 使用 netfilter,我已经设法更改传入 TCP 数据包的 IP 和端口,以便将它们转移到我的应用程
我是一名优秀的程序员,十分优秀!