javascript - 在 Chrome 内容扩展中拦截表单提交

标签 javascript google-chrome-extension

我想拦截特定网站上表单的提交。该表单没有 ID,但有名称。我不想使用 jQuery,因为我的扩展非常轻量级并且没有依赖项。表单不是通过按钮提交的,而是通过submit()方法提交的。

我以为我可以处理 onSubmit 事件,但它似乎没有被引发。

现在我很困惑,有什么想法吗?

最佳答案

您可以使用以下方式捕获您的表单

var myForm = document.getElementsByName('myForm');

它返回一个nodeList(类似于Array)。然后您可以通过两种方式重写 submit 事件:

myForm.onsubmit = function (evt) {...};

myForm.addEventListener('提交', function (evt) {...});

请注意,事件名称只能使用小写字母。在第二个示例中,您可以将多个监听器绑定(bind)到事件,但旧版浏览器不支持它 (< IE 9)。

示例:

html:

<form name="myForm" action="#" method="post">
    <input type="submit" value="Send">
</form>

js:

var myForm;

myForm = document.getElementsByName('myForm')[0];

myForm.onsubmit = function (evt) {
    // Do things here before passing on or stop the submit
};

关于javascript - 在 Chrome 内容扩展中拦截表单提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8470379/

相关文章:

javascript - 发送消息和在自己的墙上发帖功能不再有效

google-chrome-extension - 如何以编程方式从指定域的 chrome 扩展中删除所有本地存储

javascript - 保护 Chrome 扩展程序中的网站 API key

javascript - 从 Chrome 扩展 : concurrency issue? 在页面中注入(inject) Javascript

JavaScript window.open 函数在 IE7 中指示不要显示工具栏和菜单栏时显示工具栏和菜单栏

javascript - 打印 html 时页面范围的选项

javascript - 当句子中出现某个单词时替换整个字符串 javascript/Google Chrome 扩展

javascript - 在 Google Chrome 中通过 Javascript 启动系统命令

javascript - jQuery 动画回调不起作用

javascript - 当 document.hidden 为 true 时,Chrome 中不会触发滚动事件。任何解决方法?