【发布时间】: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