我有营销部门要求将 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&utm_source=typeform.com-11265281-Basic&utm_medium=typeform&utm_content=typeform-embedded-poweredbytypeform&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/