2016-04-18 14 views
3

ドキュメントには多くのcontentcontrolがあります。そのコントロールを選択してそのコンテンツコントロールを選択する方法を見つける必要がありますそれに応じて動作します。私はcontentControlsのonEnterイベントとonExitイベントを実装することで実現できると思います。しかし、JavaScript apiでこれらのイベントハンドラを宣言して呼び出す方法はわかりません。どんな助けでも本当に感謝しています。Word用Javascript APIを使用してContentControlでOnEnterおよびOnExitイベントを実装する方法2016

答えて

2

現在のAPIセットでその機能を実装するためのAPIを組み合わせて使用​​する必要があります:

  1. まずDocument.selectionChanged eventのイベントハンドラを追加します。
  2. イベントが発生するたびに、Document.getSelection() APIを使用して、ドキュメント内の選択に対応するRangeオブジェクトを取得します。
  3. Range.contentControlsリレーションシップを使用して範囲を確認し、コンテンツコントロールがあるかどうかを確認します。

-Michael(アドインのPM)

1

良い質問!コンテンツコントロールのonEnterイベントがあります(binding.selectionChangedと呼びます)。ユーザーがコンテンツを変更してコンテンツコントロールを終了した場合にトリガーされるbinding.dataChangedイベントもあります。

Michael提案文書内の各コンテンツコントロールのバインディングを作成してから、このようなイベントを登録することです

あなたがすることによって、これを達成することができます。。 1.コンテンツコントロールのコレクションをトラバース(body.contentControlsコレクションを使用) 2.各コンテンツコントロールのために、タイトルを取得または設定し、それを使用して名前付きアイテムによるバインディングを作成します。bindings.addFromNamedItemメソッドを確認してください。 3.コールバックで必ず購読してくださいeをバインディングのselectionChanged(またはDataChanged)に渡します。 バインディングコードを作成し、イベントへの登録は、次のようになります。

function CreateCCSelectionChangedEvent() { 
 
     Office.context.document.bindings.addFromNamedItemAsync("TitleOfTheContentControl", { id: 'Binding01' }, function (result) { 
 
      if (result.status == 'succeeded') { 
 
       result.value.addHandlerAsync(Office.EventType.BindingSelectionChanged, handler); 
 
      } 
 
     }); 
 
     
 
    } 
 

 
    function handler() { 
 
     console.log("Event Triggered!"); 
 
    }

・ホープ、このことができます!

関連する問題