Chrome扩展程序绑定到表单提交

时间:2012-08-29 21:12:53

标签: google-chrome-extension submit bind

我正在编写一个chrome扩展,当用户提交表单时需要做一些工作。我在后台运行了一个运行以下代码的内容脚本:

$(document.body).on('submit', 'form', function () {
         doWork();
});

这在大多数网站上都能很好地运行,但在twitter的登录表单上有所突破。奇怪的是,它并没有完全打破。如果我点击在Twitter上的“登录”按钮,doWork()功能将会运行。但是,如果我按enter 提交表单,则doWork()永远不会运行。

在我的调试工作中,然后我将我的代码复制并粘贴到开发工具中以重新绑定该函数,并查看它是否有效。它确实 - 即使使用enter,新绑定仍然有效。

我的下一个想法是,jQuery.on可能没有处理通过javascript 创建的元素(假设按钮通过javascript提交隐藏的动态创建表单,而不是可见形式,出于某种原因)。所以,我像上面那样反弹这个事件,但是添加了一行,提醒我提交表单的类名 - 所有表单都在twitter登录页面上有唯一的类名。

正如您可能已经猜到的那样,单击“登录”与按下输入以相同的类名提醒 - 所以,无论我以哪种方式查看它,我都有一个事件绑定到该表单提交,但对于某些当我按下回车键时,它没有被调用。

0 个答案:

没有答案