チャットボタンが読み込まれた後、ボタンがオンラインかオフラインかに応じてカスタムのJavaScriptコードを実行したい場合があります。このような状況に対応するため、バージョン4.17.3からこれら2つのコールバック関数が追加されました。これらをオーバーライドして、実行したい独自のコードを指定できます。

Button.onOnline()
Button.onOffline()

使用例

例えば、対応可能なエージェントがいる場合にチャットボタンを表示したいが、オフライン用のボタンは表示せず、代わりにナレッジベースの検索ウィジェットを表示したいとします。これを実現するには、まずチャットボタンのオフラインバリアントを表示しないよう設定する必要があります。Display offline button when chat is unavailable(チャット利用不可時にオフラインボタンを表示する)オプションのチェックを外してください。

次に、通常通りボタンのインテグレーションコードを使用し、一部変更を加えます。変更前のインテグレーションコードは以下の通りです:

<script type="text/javascript">
(function(d, src, c) { var t=d.scripts[d.scripts.length - 1],s=d.createElement('script');s.id='la_x2s6df8d';s.async=true;s.src=src;s.onload=s.onreadystatechange=function(){var rs=this.readyState;if(rs&&(rs!='complete')&&(rs!='loaded')){return;}c(this);};t.parentElement.insertBefore(s,t.nextSibling);})(document,
'//localhost.lc/LiveAgent/LiveAgent/server/scripts/track.js',
function(e){ LiveAgent.createButton('70735e08', e); });
</script>

以下の呼び出しを

LiveAgent.createButton('70735e08', e);

次のように変更します:

var button1 = LiveAgent.createButton(' 70735e08 ', e); 
button1.onOffline = function() {
  // code to execute when button is offline >>>
  (function(d, src, c) { var t=d.scripts[d.scripts.length - 1],s=d.createElement('script'); s.id='la_x2s6df8d';s.async=true;s.src=src;
    s.onload=s.onreadystatechange=function(){var rs=this.readyState;if(rs&&(rs!='complete')&&(rs!='loaded')){return;}c(this);};t.parentElement.insertBefore(s,t.nextSibling);})
    (document, '//localhost.lc/LiveAgent/LiveAgent/server/scripts/track.js',
    function(e){ LiveAgent.createKbSearchWidget('b3e5a253', e); });
  // <<< end code
  };

説明

変更後のコードでは、Buttonオブジェクトを変数button1に代入し、button1.onOfflineをカスタム関数でオーバーライドしています。この関数は、ボタンがオフラインの場合に実行されます。関数内では、ナレッジベース検索ウィジェットの完全なインテグレーションコード(開始タグ<script>と終了タグ</script>を除く)を使用していることに注意してください。