【问题标题】:How to find with Firebug or any other extension what Javascript code triggers form submission?如何使用 Firebug 或任何其他扩展查找 Javascript 代码触发表单提交的内容?
【发布时间】:2021-03-02 05:15:15
【问题描述】:

我有一个奇怪的错误 - 网页加载后不久,正在提交一个表单(表单提交显然是由 Javascript 代码触发的)。问题是我找不到提交表单的代码。是否可以使用 Firebug 或任何其他扩展程序找到它?

【问题讨论】:

  • 只需在你的代码库中搜索 submit(),在所有可能的地方放置一个断点(即你调用表单对象的 submit() 的地方)。希望你知道萤火虫的用法。
  • 谢谢,但问题是代码库很大,所以不可能
  • 好吧,你的代码库可能很大。但是,您的页面可能只使用了几个文件。所以你最好在萤火虫本身中搜索“提交()”。这将显示提交()的所有占位符。然后在所有地方放置断点并等待:)

标签: javascript dom-events form-submit firebug


【解决方案1】:

在 Chrome 开发人员工具中,如果您在没有在断点或其他任何地方停止的情况下单击“暂停”按钮,我体验到它会在即将执行的下一个脚本片段上暂停。可能会对你有所帮助。

【讨论】:

    【解决方案2】:

    您可以尝试将以下脚本添加到

    元素的最顶部。
    for (var i= 0; i < document.forms.length; i++) {
        document.forms[i].onsubmit = function(e){
            console.log(e);
            console.trace();
            alert("wait a minute...");
        };
    }
    

    该代码应拦截页面上的所有表单提交。

    表单提交后,您将在firebug控制台中找到事件对象转储和调用堆栈跟踪,同时警报阻塞请求。

    【讨论】:

    • 感谢建议,但是如果表单是从javascript提交的,则不会被捕获,例如form.submit()
    【解决方案3】:

    我解决了这个问题,可以通过添加来解决

    form.submit = function(event) {console.trace()}
    

    因此,我们为表单重新定义了提交处理程序,它不会被提交,而是将跟踪信息打印到控制台。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-28
      • 2012-03-02
      • 1970-01-01
      • 2017-11-22
      • 1970-01-01
      • 2014-01-14
      • 1970-01-01
      相关资源
      最近更新 更多