我一直想知道是否有办法欺骗JS对象,如导航器,屏幕等,以便在页面请求时发送虚假数据。
我使用C#开发一个包含GeckoFx浏览器的应用程序,我想做这样的事情:每次打开一个包含JS的网页来检索用户信息时(例如屏幕分辨率,我安装了哪些插件)等),浏览器应该发送假信息(我的屏幕分辨率是1024x768,我想发送1440x900等)。
任何人都可以帮我处理这条信息吗?
谢谢!
答案 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中使用。我想你不能在浏览器中做到这一点。