我正在编写Chrome扩展程序,我想拦截对表单提交方法的所有调用,并有选择地允许/禁止它们。
只有在单击表单的提交按钮时才会触发表单onsubmit事件,而不是在调用submit()时触发。所以这没有用。
我以为我可以使用表单的原型在那里破解我自己的提交方法,这可能吗?
答案 0 :(得分:1)
我不知道改变原型,但你绝对可以覆盖表单对象本身的提交函数(这通常发生在设计师决定给提交按钮命名="提交"属性没有明显的原因)。
因此,您可以执行节点查询以查找所有表单,并使用您自己的包装函数替换每个表单的提交属性。
答案 1 :(得分:1)
Chrome的沙盒阻止了它的运行。如果您从内容脚本执行此操作,页面仍将看到原始的submit()方法。
答案 2 :(得分:0)
document.someform.submitOrig = document.someform.submit;
document.someform.submit = function() {
this.onsubmit();
this.submitOrig();
};
这很有效,谢谢GGG