【问题标题】:Overwriting Native Methods in Javascript在 Javascript 中覆盖本机方法
【发布时间】:2010-11-11 05:45:56
【问题描述】:

我正在对一些 Javascript 进行一些分析,我想保持启用 javascript,但禁用所有 alert() 框和 self.location 重定向。

目前我正在使用正则表达式代理,但这似乎有点矫枉过正。

我可以覆盖一些原生方法,但不能覆盖 Firefox 中的其他方法,即

window.alert = function('') { return null; }
alert('test!') // works as expected

但是,当我尝试类似地覆盖 window.location = (这是方法调用 window.assign() 的别名)时,它不起作用

window.location.assign = function('') { return null; }
window.location.assign('#') // redirects :(

我已尝试设置 Window.prototype.location.assign,但出现“无法修改 WrappedNative 的属性”异常。

NoScript 的细粒度 JS 控制的替代方案,或者是否可以覆盖某些 Native JS 方法?

【问题讨论】:

  • 您为什么希望能够做到这一点?我已经看到警报和确认被覆盖以创建自定义对话框,但为什么要覆盖位置?
  • 使用一些恶意代码

标签: javascript native-methods overwrite


【解决方案1】:

这个用于禁用alertsuggested solution 可能会起作用。

【讨论】:

    猜你喜欢
    • 2011-10-16
    • 1970-01-01
    • 2021-12-25
    • 2017-01-13
    • 2021-07-09
    • 2013-09-15
    • 2015-05-14
    • 1970-01-01
    • 2011-11-10
    相关资源
    最近更新 更多