动态脚本加载 Zendesk 小部件

Vic*_*lbu 2 javascript dynamic-script-loading zendesk

除非需要,我一直试图通过不加载 Zendesk 小部件来节省页面上的资源。

如果我手动添加到页面以下标签一切正常:

<script id="ze-snippet" src="https://static.zdassets.com/ekr/snippet.js?key=[MyKey]> </script>
Run Code Online (Sandbox Code Playgroud)

作为我页面的一部分,我在某个地方始终存在一个 div 标签:

<div id="ze-snippet"> </div>
Run Code Online (Sandbox Code Playgroud)

我想要的是,<script>当用户单击按钮时对该标签执行“动态脚本加载” 。

我目前的尝试是这样的:

<script id="ze-snippet" src="https://static.zdassets.com/ekr/snippet.js?key=[MyKey]> </script>
Run Code Online (Sandbox Code Playgroud)

我不断收到的错误是我一生都无法弄清楚如何解决它: 在此处输入图片说明

aba*_*het 6

要仅在单击按钮时加载小部件脚本,您只需将其插入到您的 html 中:

<script>
  function loadZendeskWidget() {
      var script = document.createElement('script');
      script.type = 'text/javascript';
      script.id = 'ze-snippet';
      script.async = true;
      script.src = 'https://static.zdassets.com/ekr/snippet.js?key=<key>';
      document.getElementsByTagName('head')[0].appendChild(script);
  };
</script>
Run Code Online (Sandbox Code Playgroud)

只需用您自己的小部件键替换“键”即可。

希望这可以帮助。