我正在嘗試編寫一個Greasemonkey腳本或者腳本來修復網站中的一個錯誤,該錯誤會處理對象的錯誤函數。我可以通過在生成函數原型的代碼行中添加斷點來手動修復問題,並使用js控制檯手動覆蓋函數原型。但是,我不認爲有什麼辦法可以用代碼來做到這一點。外部腳本被加載到html主體的末尾,但問題代碼在同一腳本中執行。在調用之前從外部腳本覆蓋對象函數
有沒有辦法以某種方式將JavaScript代碼注入到頁面中,以便當創建此Ft.prototype.J時,我可以立即修改它?問題是代碼也被混淆和縮小,所以我不確定它的一半是什麼。
這裏是代碼的基本概要:
//What does this do?????
function A(a, b) {
function c() {}
c.prototype = b.prototype;
a.f = b.prototype;
a.prototype = new c;
a.prototype.constructor = a
}
function Ft(a, b) {
$.call(this, b);
//some stuff
}
//doing something with jQuery?
A(Ft, $);
Ft.prototype.J = function (a) {
//modifies the DOM content
};
//Code soon after that calls some object.J
如果我添加的代碼Ft.prototype.J = function() {} //my own function
行,到我的Greasemonkey腳本,它給我回錯誤,符合市場預期,Ft not defined
。但是,如果我在加載結束時執行該行,那麼破壞的函數已經運行,並且DOM已經被感染。
謝謝。
'A'是普通'inherit'功能,但是我m相當肯定它不適用於jQuery – Bergi
哦,我現在看到謝謝。這實際上來自Google Play網站的代碼,所以我希望他們正確地做對了... –