2

我一直想知道是否有办法欺骗导航器、屏幕等 JS 对象,以便在页面请求时发送虚假数据。

我使用 C# 开发一个包含 GeckoFx 浏览器的应用程序,我想做这样的事情:每次我打开一个包含 JS 的网页来检索有关用户的信息(例如屏幕分辨率、我安装了哪些插件等) ,浏览器应该发送虚假信息(我的屏幕分辨率是 1024x768,我想发送 1440x900 等)。

任何人都可以帮我处理这条信息吗?

谢谢!

4

1 回答 1

5

可以通过替换来欺骗 JS 对象。您显然必须非常小心,以免弄乱所需操作所需的功能。无论如何,这是一个如何替换屏幕对象以报告您想要的任何分辨率的示例。

在 jsFiddle 中运行:http: //jsfiddle.net/jfriend00/bfAYe/

var oldScreen = screen;  // save old screen object just in case

var myScreen = {};       // create new screen object

// prefill with all properties of old object
for (var i in screen) {
    myScreen[i] = screen[i];
}
screen = myScreen;    // replace existing object with mine
screen.width = 1440;  // change properites on mine
screen.height = 900;

// verify that changed properties are in place
$("#container").html("width="+screen.width+", height="+screen.height);

// outputs width=1440, height=900

似乎适用于 Opera 和 Chrome,但不适用于 IE9、FF5 或 Safari。我猜你不能跨浏览器做到这一点。

于 2011-07-15T23:20:47.253 回答