angular - 如何在 angular4 中嵌入 typeform 小部件

标签 angular

我有营销部门要求将 typeform 集成到静态页面中,他们可以快速构建然后嵌入到页面中,我使用 aot angular4,将是来自 CMS 的动态注入(inject),因此意味着需要一种方法来支持任何类型的小部件,小部件有脚本,看起来像:

        <div class="typeform-widget" data-url="https://xxxxxxx.typeform.com/to/CCiqgs" style="width: 100%; height: 500px;"> </div>
        <script>
            (function () {
                var qs, js, q, s, d = document,
                    gi = d.getElementById,
                    ce = d.createElement,
                    gt = d.getElementsByTagName,
                    id = "typef_orm",
                    b = "https://embed.typeform.com/";
                if (!gi.call(d, id)) {
                    js = ce.call(d, "script");
                    js.id = id;
                    js.src = b + "embed.js";
                    q = gt.call(d, "script")[0];
                    q.parentNode.insertBefore(js, q)
                }
            })()
        </script>
        <div style="font-family: Sans-Serif;font-size: 12px;color: #999;opacity: 0.5; padding-top: 5px;"> powered by
            <a href="https://www.typeform.com//?utm_campaign=CCiqgs&amp;utm_source=typeform.com-11265281-Basic&amp;utm_medium=typeform&amp;utm_content=typeform-embedded-poweredbytypeform&amp;utm_term=EN" style="color: #999" target="_blank">Typeform</a>
        </div>

意味着我们要找到一种方法来支持这一点,而无需每次都发布新版本或构建应用程序以嵌入新的小部件或仅为一个简单的小部件更改 ts,事实上,我们应该支持任何类型的小部件。

有任何想法吗?
我会感谢你的帮助。
谢谢

最佳答案

您可以使用 Typeform Embed SDK

在你的 Angular 项目中通过 npm 安装:

npm install --save @typeform/embed

然后您可以将 TypeformEmbed 导入到您启动表单的组件中:
import * as typeformEmbed from '@typeform/embed'

如果您在加载页面时需要它作为弹出窗口,请在 AfterViewInit 回调中调用 SDK:
ngAfterViewInit(): void {

   typeformEmbed.makePopup('<your typeform url here>', {mode: 'popup', autoOpen: true})
}

关于angular - 如何在 angular4 中嵌入 typeform 小部件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47326219/

相关文章:

javascript - 基于路由器 url (Angular4) 将 header 绑定(bind)到文本

angular - 滑垫 : one change triggers twice the subscription on valuechanges

javascript - JS 库的 Angular 包装器不加载样式

javascript - *ngFor 循环定义次数而不是重复数组的方法?

javascript - 在 Angular 中,如果选择了一个开关,如何禁用其余开关?

javascript - 在单页应用程序中,我们应该在内存中缓存多少数据?

css - 在 Angular 中使用正确的 CSS 媒体查询

javascript - 无法在 Angular 2 组件中连接字符串

javascript - 在 TypeScript 中将带键值的对象反序列化/解析为不带键的对象

javascript - Angular 8 窗口滚动事件不会在移动浏览器上触发