欺骗JS对象

时间:2011-07-15 21:39:27

标签: c# javascript object browser spoof

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

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

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

谢谢!

1 个答案:

答案 0 :(得分: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中使用。我想你不能在浏览器中做到这一点。