2017-04-13 3 views
3

定義されていません。

API呼び出しがライブチャットスクリプトの後に挿入し、$ zopim内にラップする必要があります(機能(){...})

は、だから私は、HTMLのhead一部でZopimスクリプトを持っています。そして、私は、HTML文書の末尾にこれを追加

<script>/*<![CDATA[*/window.zEmbed||function(e,t){ ... }("https://...); 
/*]]>*/</script> 

$zopim(function() { 
    $zopim.livechat.setName('Logged in name'); 
    $zopim.livechat.setEmail('[email protected]'); 
}); 

とコンソールは言う:$ zopimが

が定義されていない

私は私が正しくthe instructionsに従っていると思います。私は何を取りこぼしたか?

+0

これを解決しましたか?私は同じ問題を正確に持っています –

+0

いいえ、私はタイムアウトで醜いハックを書いた、私は答えとしてそれを投稿します –

答えて

7

私は私がそれを使用して作業を行うためにゼ機能を追加する必要がある理由であることZendeskのサポート内Zendeskチャットコードを使用していました(サポートするための要求を提出した後)

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

をよりよい解決策を見つけましたAPI。

+0

@ラップ2-h解決策としてこの答えをマークしてください! – Aliance

+0

これはJavaScriptをどのように埋め込んでいるかによって異なります。 $ zopim javascriptを使用している場合、これは動作しませんが、Zendeskウィジェット(zEmbed)を使用している場合は、これが実行される前にzE(またはzEmbed)がロードされていないという問題があります。このインスタンスでは、待機ループが必要です。 –

1

$ 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); 
関連する問題