2016-10-19 12 views
0

タイトルはおそらく少し面倒です。基本的に私がしようとしているのは、オブジェクトのプロパティを変更し、そのオブジェクトを返し、関数を呼び出すカスタム関数を作成することです。オブジェクトのプロパティを変更してからjavascriptでカスタム関数の中で関数を呼び出す

私がやっていることについての少しの背景:Zendesk APIを使って自分のウェブページでWebウィジェットを使用しようとしています。基本的に、このWebウィジェットは起動時にヘルプセンターに設定され、状態に応じてライブチャットまたは電子メールのいずれかのボタンが表示されます。ここで問題となる主なプロパティは「抑止」と呼ばれ、ウィジェットページの1つを無効にします(チャット、電子メール& helpCenter)。私の目標は、3つのウィジェットページのうちの2つを「抑制」するようにカスタム機能を作成し、1つしか表示しないことです。 APIファンクションzE.activate()がウィジェットを開きます。私はそれ以来chatPopOut()割り当てられ、zE.activate()作品を持っているボタンをクリックすると、今

<script> 
function setChatPopOutProps(window) { 
    window.zESettings = { 
     webWidget: { 
      contactForm: { 
       suppress: true 
      }, 
      helpCenter: { 
       suppress: true 
      } 
     } 
    }; 
    return window.zESettings; 
}; 
function chatPopOut() { 
    setChatPopOutProps(window); 
    zE.activate(); 
}; 
</script> 

私は、これはテキストがたくさんある知っている、私はあなたに私がこれまで持っているコードを表示してみましょうウィジェットを開きますが、基本的にsetChatPopOutProps(window)は動作していませんでした。

私はまた、次のことを試してみました:

  • zESettingsの終わりにzE.activate()を置くことによってか、単にリターンwindowまたはwindow.zESettings
後に単一機能の下ですべてのものを置く windowwindow.zESettings
  • を返しません

    アイデアを出すためにウィジェットを表示する必要がある場合は、それを見ることができますright here。右下の緑色のボタンをクリックし、何でも入力すると、連絡先フォームのボタンがポップアップします。ライブチャットエージェントが利用可能な場合、このボタンはチャットボタンのために変更されます。

    これは私が通常試みたZendeskで直接試してみるべきことだと知っていますが、達成しようとしていることは何もできないと私は言っていましたが、私はjavascriptで、APIの構築方法ではないことをやっているやり方とは関係ありません。

    アイデアはありますか?とても感謝しております。

    P.S.これは私の2番目の投稿ですので、私はおそらくこの質問で間違いを犯したことをお詫びします。

  • +0

    あなたの関数chatPopOut()では、関数によって渡されていないので、varウィンドウは空の値です。 chatPopOut(ウィンドウ)ではいけませんか? –

    答えて

    0

    悲しいことに、あなたが達成しようとしていることはできません。ウィジェットが最初に初期化されたときにzE.settingsが適用されるので、ページの更新やウィジェットの再初期化などのアクションを実行せずにウィジェット設定を動的に変更する方法はありません。私はあなたのコードから見ることができる限り、毎回ページを更新したいと思うし、上記の設定を適用するためにウィジェットを再初期化したいとは思わない。

    関連する問題