繁体   English   中英

如何修改系统生成的 Hubspot javascript 表单

[英]How do I modify a Hubspot javascript form that is system generated

我遇到了一个问题,我试图在他们的 CMS 中扩展 Hubspot 表单以从中获取一些附加功能。

不幸的是,我无法编辑他们在 CMS 中的代码,所以认为可能有一种方法可以在他们的代码之后添加一些 javascript 来添加我想要做的事情。

他们生成的代码如下所示:

      hbspt.forms.create({ 
        portalId: '435515',
        formId: '19046100-d845-4f9c-96cf-974286fc6b45', 
      });

我想在提交后获取表单数据,所以它需要是这样的:

      hbspt.forms.create({ 
        portalId: '435515',
        formId: '19046100-d845-4f9c-96cf-974286fc6b45',
        onFormSubmit: function($data) {
          console.log( $("input[name=firstname]").val() );
        }    
      });

但我无法编辑他们生成的代码。 有没有办法在不编辑它们生成的代码的情况下将 onFormSubmit 添加到这个函数。

所以像:(这不起作用)

    //Their original code
    <script>    
      hbspt.forms.create({ 
        portalId: '435515',
        formId: '19046100-d845-4f9c-96cf-974286fc6b45',   
      });
    </script> 

    //My added function
    <script> 
        onFormSubmit: function($data) {
          console.log( $("input[name=firstname]").val() );
        }          
    </script>  

谢谢

选项#1:在 COS 富文本模块中使用可嵌入表单——我知道这听起来有点倒退,但它是可行的。 这使您可以访问onFormSubmit ,这是每个开发人员文档中可嵌入 HubSpot 表单的有效选项: http : //developers.hubspot.com/docs/methods/forms/advanced_form_options

选项#2(需要 HubSpot Pro 或 Enterprise):在表单提交时触发工作流并包含一个 webhook 作为一个步骤——无法修改有效负载,但它将整个联系人记录发送到您选择的端点: http: //developers.hubspot.com/docs/methods/workflows/webhook_information

选项#3(适用于所有产品层——付费,但最低限度):使用 Zapier.com 将 HubSpot 连接到其他 SaaS 平台。 Zapier 还包括一种自定义 webhook 有效负载的方法,以将所需数据发送到您的最终目的地。

除了@Kirk H 所提到的,另一种方式可能是监视页面的事件消息并在发布消息并与 HubSpot 表单相关时执行操作,例如表单提交。

当然,这不是最佳解决方案,因为您实际上通常监视页面的事件,但就成本而言,它不需要任何外部库、服务或任何 Pro/Enterprise 帐户,并且应该以简单的方式完成工作而不是繁重的工作负载场景。

例如,这对于与其他系统( 例如 Google Tag Manager )的集成很有用:

window.addEventListener("message", function(event) {
  // An event regarding HS form occured, and it is a form submission here.
  if(event.data.type === 'hsFormCallback' &&
    event.data.eventName === 'onFormSubmitted') {
    window.dataLayer.push({
      'event': 'hubspot-form-success',
      'hs-form-guid': event.data.id
    });
  }
});

最简单的方法是使用HubSpot 全局表单事件

window.addEventListener('message', event => {
  if (
    event.data.type === 'hsFormCallback'
    && event.data.eventName === 'onFormSubmit'
  ) {
    console.log("Form Submitted!");
  }
});

如果您的页面上有多个表单,您还可以使用event.data.id检查其id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM