【问题标题】:How can I capture the page URL with an embedded Typeform (using hidden fields)?如何使用嵌入的 Typeform(使用隐藏字段)捕获页面 URL?
【发布时间】:2021-08-24 21:19:50
【问题描述】:

我希望将 Typeform 嵌入到我的文档中心的不同文章中。但是,我需要使用隐藏字段捕获页面 URl,以便我可以链接在哪个文章页面上留下了哪些反馈。

目前,回复是汇总的,我不知道用户在哪篇文章上留下了反馈。 这是嵌入代码的样子(我还添加了一个名为 article_url 的隐藏字段):

<div data-tf-widget="a1B2c3D4" data-tf-opacity="0" data-tf-hide-headers data-tf-hide-footer data-tf-hidden="article_url=xxxxx" style="width:100%;height:350px;"></div><script src="//embed.typeform.com/next/embed.js"></script>

我确信我可以使用隐藏字段以及嵌入代码中的 window.location.href 函数和使用 jquery 来做到这一点,但我不确定脚本的外观和我的编码技能有点生疏。

【问题讨论】:

    标签: javascript jquery url typeform


    【解决方案1】:

    您可以像这样使用 JavaScript 直接更新您的 typeform 嵌入代码:

    const formElement = document.querySelector('[data-tf-widget=a1B2c3D4]')
    formElement.dataset.tfHidden = `article_url=${window.location.href}`
    

    但是,由于您已经在使用自定义 JavaScript,您可以使用 Typeform 嵌入库 (see on Github) 来更好地控制您的嵌入表单:

    <div id="form" style="width: 100%; height: 350px"></div>
    <script src="//embed.typeform.com/next/embed.js"></script>
    <link rel="stylesheet" href="//embed.typeform.com/next/css/widget.css" />
    <script>
      const formId = 'a1B2c3D4'
      const container = document.querySelector('#form')
      window.tf.createWidget(formId, {
        container,
        hideHeaders: true,
        hideFooter: true,
        opacity: 0,
        hidden: {
          article_url: window.location.href,
        },
      })
    </script>
    

    【讨论】:

    • 谢谢!还是有点麻烦。我们使用 Zendesk 指南,因此我们的脚本和 HTML 位于不同的工作表中:script.js 和 article_page.hbs。 script.js:const formId = 'a1B2c3D4' const container = document.querySelector('#typeform-form') window.tf.createWidget(formId, { container, hideHeaders: true, hideFooter: true, opacity: 0, hidden: { article_url: window.location.href, }, })article_page.hbs&lt;div id="typeform-form" data-tf-widget="a1B2c3D4" style="width:100%;height:350px;color:#FFFFFF;"&gt;&lt;/div&gt;&lt;script src="//embed..js"&gt;&lt;/script&gt;
    • 您正在混合我在答案中列出的两种方法。如果您希望脚本存在于单独的 JS 文件中,您需要使用第二种方法。您的 HTML (HBS) 文件应仅包含具有 id 属性和脚本的 div:&lt;div id="form" style="width: 100%; height: 350px"&gt;&lt;/div&gt;&lt;script src="//embed.typeform.com/next/embed.js"&gt;&lt;/script&gt; &lt;script&gt; 的内容可以提取到单独的 JS 文件中(例如 script.js)。
    • 您好 - 实现了您提到的内容,但仍有一些问题。这是我的脚本 (script.js) 和文章页面 (article_page.hbs) 的屏幕截图:share.getcloudapp.com/kpunnpoE。任何见解都会有所帮助! typeform 中的 article_url 字段仍然显示为空白。
    • @TasK 您需要从 DIV 中删除所有 data-tf- 属性并仅保留 JS 代码。像这个工作示例:antique-sugar-pirate.glitch.me
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-17
    • 2019-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多