1

我的代码如下:

form.submit();//synchronized submit, not asynchronous,the form is not a html form but created by javascript
some codes here;//Is this line executed, or it sometimes executed sometimes not

我在第二行有一些统计代码(向服务器发送 http 请求)并真正得到了一些数据。因为统计数据和预期之间有很大的差距,我怀疑第二行总是被执行。

4

1 回答 1

4

这取决于表单在提交时所做的事情:

  • 如果表单提交正常,则代码可以运行。普通表单提交会将浏览器重定向到 action 属性中定义的 url。代码可能会运行,但页面已经准备离开,因此您可能看不到代码之后的form.submit()作用。

  • 如果表单提交并被 JavaScript(可能被事件处理程序)捕获,则之后的代码form.submit() 可以运行,但取决于该事件处理程序的作用。如果处理程序没有阻止正常的表单提交,则情况与第一种相同。如果处理程序阻止正常的表单提交,那么它可以运行。

我建议您为该表单构建一个处理程序,以防止使用return false和/或之类event.preventDefault()的技术正常提交表单,并且还在那里运行代码。

于 2012-08-14T01:51:36.590 回答