如何在angular4中嵌入一个typeform小部件

时间:2017-11-16 09:40:59

标签: angular

我的营销部门要求将字体集成到静态页面中,他们可以快速构建并嵌入到页面中,我使用aot angular4,将是CMS的动态注入,因此需要一种方式为了支持任何类型的小部件,小部件有脚本,看起来像:

        <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,事实上,我们应该支持任何类型的窗口小部件。

有什么想法吗? 我很感激你的帮助。 THX

2 个答案:

答案 0 :(得分:2)

您可以使用Typeform Embed SDK

通过npm在Angular项目中安装:

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})
}

答案 1 :(得分:1)

您可以使用自定义嵌入部分here下网站上建议的iframe解决方案。

#my_typeform {
display: inline-block;
width: 800px;
height: 600px;
margin: 60px;
}
<iframe id=”my_typeform” src=”https://yourname.typeform.com/to/abc123″></iframe>

但我相信你也可以通过清理来解决这个问题on this blog

希望它有所帮助,祝你有个美好的一天。 :)