如何禁用特定的JavaScript对象

时间:2010-08-26 08:13:44

标签: javascript

全部好,

有没有办法禁用特定的JavaScript对象,而所有其他JS对象都可以执行?类似于顶行中的脚本,它控制页面上其余的JS代码。

例如,我想阻止执行navigator.userAgent并让navigator.appVersion可用。 或者甚至更高级的方式,执行结果必须由我定义。假设我的浏览器是FF 3.6.8,但navigator.userAgent会退回IE 8.0

大多数情况下,我对禁用或取代返回有关用户浏览器,Cookie,分辨率和操作系统的信息的对象结果感兴趣

先谢谢。 Jevgenijs

2 个答案:

答案 0 :(得分:0)

我不确定你为什么要这样做,但你可以通过在全局范围内声明一个具有相同名称的变量来覆盖 window 对象上的任何属性和方法: / p>

var navigator = {
    userAgent: "",
    appVersion: navigator.appVersion,
    // etc...
}

alert(window.navigator.userAgent);
//-> ""

答案 1 :(得分:0)

@All:我在user.js文件(link text)中添加了以下内容并且有所帮助。现在,我的FF浏览器和操作系统类型都不会被任何网站识别,即使是通过iframe显示的那些也是如此。

 user_pref("general.useragent.appName", "replacement string for appNameCode");
 user_pref("general.appname.override", "replacement string for appName");
 user_pref("general.useragent.override", "replacement string for userAgent");
 user_pref("general.appversion.override", "replacement string for appVersion");
 user_pref("general.platform.override", "replacement string for Platform");

现在可以覆盖screen.width, screen.heigh, screen.colorDepth,但这些对象似乎无法通过user.js文件覆盖。

到目前为止只有一个想法: ...很可能FireFox JS引擎从操作系统中检索这些值,因此我需要知道Linux中的哪个文件(Ubuntu)存储这些值并临时更改它我需要。任何WIN OS都会变得更加困难,因为它将所有内容存储在该死的注册表中。我是对的吗?

还有什么想法?

此致