2015-10-15 28 views
1
一個頁面

上我有一個嵌入25種型形式(http://www.typeform.com)的頁面。多typeform嵌入

每個類型形式被嵌入予添加一個鏈接,然後它下面的腳本時(見下文)。

當點擊該鏈接,它會打開與它裏面的形式在頁面上彈出。

我想知道,是否有可能添加腳本只有一次,然後讓每個鏈接觸發它,當它被點擊,而不是添加腳本爲每個嵌入?我假設它在頁面加載時重量很大,該腳本加載了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> 

回答

1

從您的代碼,並與我的一些typeform部件測試,你應該是安全的與您的HTML只是最後一個<script>...</script>標籤,如果是包含相同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> 

和它的安全,以除去其中含有widget.js除了最後一個的所有其他<script>...</script>;

所以它是基於JS文件在typeform代碼工作

不要失去任何.js,而你並不需要超過1

糾正我,如果你的測試是不行。由於它是25種形式,所以不容易預測所有的事情。

+0

工作的享受。謝謝! –