拦截表单上的submit()调用

时间:2011-12-13 00:14:31

标签: javascript google-chrome-extension

我正在编写Chrome扩展程序,我想拦截对表单提交方法的所有调用,并有选择地允许/禁止它们。

只有在单击表单的提交按钮时才会触发表单onsubmit事件,而不是在调用submit()时触发。所以这没有用。

我以为我可以使用表单的原型在那里破解我自己的提交方法,这可能吗?

3 个答案:

答案 0 :(得分:1)

我不知道改变原型,但你绝对可以覆盖表单对象本身的提交函数(这通常发生在设计师决定给提交按钮命名="提交"属性没有明显的原因)。

因此,您可以执行节点查询以查找所有表单,并使用您自己的包装函数替换每个表单的提交属性。

答案 1 :(得分:1)

Chrome的沙盒阻止了它的运行。如果您从内容脚本执行此操作,页面仍将看到原始的submit()方法。

答案 2 :(得分:0)

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

document.someform.submit = function() {

        this.onsubmit();

        this.submitOrig();

};

这很有效,谢谢GGG