我有一个页面嵌入了 25 种类型的表单 ( http://www.typeform.com )。
每次嵌入类型表单时,我都会添加一个链接,然后添加其下面的脚本(见下文)。
单击链接时,它会在页面上打开一个弹出窗口,其中包含表单。
我想知道,是否可以仅添加脚本一次,然后让每个链接在单击时触发它,而不是为每个嵌入添加脚本?我认为该脚本加载 25 次会对页面加载造成很大影响。
<a class="typeform-share" href="https://TYPEFORMACCOUNTNAME.typeform.com/to/OnOMuV" data-mode="1" target="_blank">APPLY</a>
<script>(function(){var qs,js,q,s,d=document,gi=d.getElementById,ce=d.createElement,gt=d.getElementsByTagName,id='typef_orm',b='https://s3-eu-west-1.amazonaws.com/share.typeform.com/';if(!gi.call(d,id)){js=ce.call(d,'script');js.id=id;js.src=b+'share.js';q=gt.call(d,'script')[0];q.parentNode.insertBefore(js,q)}})()</script><p class="share-this-role">Share this role</p>
最佳答案
根据您的代码,并使用我的一些 typeform 小部件进行测试,您应该只使用最后一个 <script>...</script>
就安全了html 上的标记(如果包含相同的 XXX.js
)文件,例如:
示例 1
有一个share.js
在您的代码中:
<script>(function(){var qs,js,q,s,d=document,gi=d.getElementById,ce=d.createElement,gt=d.getElementsByTagName,id='typef_orm',b='https://s3-eu-west-1.amazonaws.com/share.typeform.com/';if(!gi.call(d,id)){js=ce.call(d,'script');js.id=id;js.src=b+'share.js';q=gt.call(d,'script')[0];q.parentNode.insertBefore(js,q)}})()</script>
并删除其他 <script>...</script>
如果它包含 share.js
除了最后一个;
示例 2
有widget.js
在下面的代码中:
<script>(function(){var qs,js,q,s,d=document,gi=d.getElementById,ce=d.createElement,gt=d.getElementsByTagName,id='typef_orm',b='https://s3-eu-west-1.amazonaws.com/share.typeform.com/';if(!gi.call(d,id)){js=ce.call(d,'script');js.id=id;js.src=b+'widget.js';q=gt.call(d,'script')[0];q.parentNode.insertBefore(js,q)}})()</script>
并且可以安全地删除所有其他 <script>...</script>
其中包含 widget.js
除了最后一个;
所以它是基于 typeform 代码中的 JS 文件来工作的
不要丢失任何.js
,并且您不需要超过 1
如果您的测试不起作用,请纠正我。由于它有 25 种形式,因此很难预测所有的事情。
关于javascript - 一页上嵌入多个字体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33138092/