$ zopim未定义

时间:2017-04-13 07:53:38

标签: javascript zendesk zopim

阅读Zopim的the documentation(a.k.a Zendesk Chat):

  

必须在实时聊天脚本之后插入API调用并将其包装在$ zopim(function(){...})

所以我在HTML的<script>/*<![CDATA[*/window.zEmbed||function(e,t){ ... }("https://...); /*]]>*/</script> 部分有一个Zopim脚本:

$zopim(function() {
  $zopim.livechat.setName('Logged in name');
  $zopim.livechat.setEmail('user@somewhere.com');
});

然后我在HTML文档的末尾添加了这个:

#include<stdio.h>
#include<conio.h>
# define N 10
void main()
{
  int i, j, n;
  float median, a[N], t;
  printf("Enter the number of items\n");
  scanf("%d",&n);
  for (i=1; i<=n; i++)
    scanf("%f",a[i]);
  for (i=1; i<=n-1; i++)
  {
    for (j=1; j<n-i; j++)
    {
      if(a[j]<=a[j+1])
      {
        t=a[j];
        a[j]=a[j+1] ;
        a[j+1]=t;
      }
    }
    else
    {
      continue;
    }
  }

  if (n%2==0)
    median=(a[n/2]+a[n/2+1])/2;
  else
    median=a[n/2+1];
  for (i=1; i<=n; i++);
  printf("%f",a[i]);
  printf("\n\nMedian is %f\n",median);
}

控制台说:

  

$ zopim未定义

我认为我已正确关注the instructions。我错过了什么?

2 个答案:

答案 0 :(得分:9)

我找到了一个更好的解决方案(在提交支持请求后)

    zE(function() {
        $zopim(function() {
            $zopim.livechat.setName("{{\Auth::user()->name}}");
            $zopim.livechat.setEmail("{{\Auth::user()->email}}");
        });
    });

我在Zendesk支持中使用了Zendesk聊天代码,这就是为什么我需要添加Ze功能以使其能够使用api工作。

答案 1 :(得分:8)

这将循环,等待$ zopim和$ zopim.livechat被加载。 一旦它们被加载,它将停止循环。

var waitForZopim = setInterval(function () {
    if (window.$zopim === undefined || window.$zopim.livechat === undefined) {
        return;
    }
    $zopim(function() {
        $zopim.livechat.setName("{{\Auth::user()->name}}");
        $zopim.livechat.setEmail("{{\Auth::user()->email}}");
    });
    clearInterval(waitForZopim);
}, 100);