2011-12-13 55 views
2

我寫一個Chrome擴展,我想所有呼叫攔截到一個表單的提交方式,並有選擇地允許/禁止它們。攔截提交()調用形式

這似乎是點擊一個表單的提交按鈕時表單onsubmit事件僅觸發,而不是當提交()被調用。所以這不會有幫助。

我想我可以使用窗體的原型破解我自己提交方法在那裏,這可能嗎?

+3

'window.HTMLFormElement.prototype.oldsubmit = window.HTMLFormElement.prototype.submit; window.HTMLFormElement.prototype.submit = function(){//你的代碼。如果允許:this.oldsubmit()}' – ampersand

+0

爲什麼不看看jQuery的源代碼來看看他們如何捕獲提交操作? – JesseBuesking

回答

1

我不知道改變的原型,但你絕對可以覆蓋的形式對象本身提交功能(這經常發生,當設計師決定給提交按鈕的名稱=「提交」屬性沒有明顯原因) 。

所以,你可以只是做一個節點查詢找到所有的表格,並更換每個人的財產提出用自己的包裝功能。

1

Chrome的沙盒防止這種工作。如果您通過內容腳本執行此操作,該頁面仍然會看到原始的submit()方法。

+0

請參閱下面的答案 – NoPyGod

0
document.someform.submitOrig = document.someform.submit; 

document.someform.submit = function() { 

     this.onsubmit(); 

     this.submitOrig(); 

}; 

這工作,感謝GGG