2009-07-16 96 views
3

我正在做一些Javascript分析,我希望保持啓用JavaScript,但禁用所有alert()框和self.location重定向。使用JavaScript覆蓋原生方法

目前我正在使用正則表達式代理,但這似乎是矯枉過正。

我可以覆蓋一些本地方法而不是其他人在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控件的替代品,還是有可能覆蓋某些原生JS方法?

+0

爲什麼你想能夠做到這一點?我已經看到警報並確認覆蓋以創建自定義對話框,但爲何覆蓋位置? – Prestaul 2009-07-16 04:02:35

+0

使用一些惡意代碼 – 2009-12-03 22:40:49

回答