バージョン

カスタム ツールバーへのボタンの追加

トピックの概要

目的

このトピックでは、igHtmlEditor™ のカスタム ツールバーにボタンを追加する方法を説明します。

前提条件

このトピックを理解するために、以下のトピックを参照することをお勧めします。

このトピックの内容

このトピックは、以下のセクションで構成されます。

概要

igHtmlEditor のカスタム ツールバーの紹介

igHtmlEditor コントロールにはカスタム ツールバーを追加することができます。現時点で、カスタム ツールバーは次の 2 種類のコントロールに対応しています。

  • ボタン
  • コンボ

以下のスクリーンショットはボタンを 1 つ定義したカスタム ツールバーがある igHtmlEditor です。

コントロールの構成の概要

以下の表では、カスタム ボタンを igHtmlEditor コントロールに追加するときの構成可能な要素をまとめました。このメソッドについては、表の下にある解説も参照してください。

構成可能な要素 詳細 オプション
カスタム ツールバーにボタンを追加 カスタム ツールバーにボタンを定義するには、プロパティとともにオブジェクト リテラルを customToolbars オプションの項目配列の右に追加します。
  • name - このプロパティはボタン名を定義します。
  • type - このプロパティは「button」に設定してください。
  • scope - このプロパティは「this」に設定してください。
  • handler - これは、ボタンをクリックしたときに起動する機能の名前です。
  • props - ネストしたオブジェクトがあるオブジェクト リテラル。 ネストされる各オブジェクトには、value と action という 2 つのプロパティを定義できます。

ウォークスルー: JavaScript によるカスタム ツールバーへのボタンの追加

概要

この手順では、igHtmlEditor のカスタム ツールバーにボタンを追加します。

この例では、エディターは、電子メール エディターとして使用し、カスタム ツールバーとボタンを定義します。これは電子メールの署名をエディターのコンテンツに挿入するコントロールです。

プレビュー

以下のスクリーンショットは最終結果のプレビューです。

概要

以下はプロセスの概念的概要です。

1. 必要なスクリプトの参照

2. ボタンの CSS の定義

3. igHtmlEditor の初期化

4. カスタム ツールバーの定義

5. ボタンの定義

6. ボタン クリック ハンドラーの定義

手順

以下のステップでは、カスタム ツールバーにボタンを追加する方法を紹介します。

  1. 必要なスクリプトを参照します。

    1. 必須参照先を追加します。

      jQuery ファイルと jQuery UI JavaScript ファイルの参照情報は必須です。また、Infragistics Loader の参照情報があれば必要な Infragistics リソースを簡単に読み込むことができます。

      HTML の場合:

       <script type="text/javascript" src="jquery.min.js"></script>
       <script type="text/javascript" src="jquery-ui.min.js"></script>
       <script type="text/javascript" src="infragistics.loader.js"></script>
      
    2. Infragistics Loader で igHtmlEditor ファイルを読み込みます。

      必要な igHtmlEditor ファイルを参照するようにローダーを定義します。

      JavaScript の場合:

       <script type="text/javascript">
           $.ig.loader({
               scriptPath: "js",
               cssPath: "css",
               resources: "igHtmlEditor"
           });
       </script>
      
  2. ボタンの CSS を定義

    ボタンの背景として適用する CSS ルールを定義します。

    CSS の場合:

     <style type="text/css">
         span.ui-icon.ui-icon-contact
         {
             background-image: url(../content/theme/images/ui-icons_222222_256x240.png); 
             background-position: -192px -128px;
         }
     </style>
    
  3. igHtmlEditor を初期化します。

    以下のコードは、ローダーのコールバック機能の igHtmlEditor を初期化します。

    JavaScript の場合:

     <script type="text/javascript">
         $.ig.loader(function () {
             $("#htmlEditor").igHtmlEditor({
                 width: "100%",
                 inputName: "htmlEditor"
             });
         });
     </script>
    
  4. カスタム ツールバーを定義します。

    "eMailSignature" カスタム ツールバーを定義します。このツールバーにはエディター コンテンツに電子メール署名を追加するボタンを配置します。

    JavaScript の場合:

     <script type="text/javascript">
         $.ig.loader(function () {
             $("#htmlEditor").igHtmlEditor({
                 width: "100%",
                 inputName: "htmlEditor",
                 customToolbars: [
                 {
                     name: "eMailSignature",
                     collapseButtonIcon: "ui-igbutton-collapse",
                     expandButtonIcon: "ui-igbutton-expand",
                     items: []
                 }]
             });
         });
     </script>
    
  5. ボタンの定義

    以下のコードは、エディターのコンテンツに電子メール署名を追加するボタンを定義します。

    カスタム ボタンはいずれもカスタム ツールバーの項目配列に定義してください。

    以下に示したのは、ボタン オプションの説明です。

    • name - このオプションはボタン名を定義します。
    • type - このオプションは、定義されるツールバー項目の種類を定義します。ボタンを定義するときは、これを「button」を設定してください。
    • scope - このオプションは、ボタンのクリック ハンドラーの実行範囲を定義します。「this」に設定してください。
    • handler - このオプションはクリック ハンドラーを定義します。これは、クリック イベントを操作する定義の名前に設定してください。
    • props - ボタン機能のほとんどを定義する複合オブジェクト プロパティです。次のような形で定義します。

      <customDefinedIdentifier> : {            
          value: <valueToBePassedToTheActionHandler>,            
          action: "<predefinedActionHandler>"            
      },
      

      ここで:

    • <customDefinedIdentifier> は API 操作に使用するカスタム文字列リテラルです。

    • <predefinedActionHandler> はハンドラーの名前であり、以下のいずれかにします。

      • "_tooltipAction" - ツールチップ文字列を受け付けます。
      • "_isSelectedAction" - ブール型値を受け付けます。
      • "_buttonIconAction" - ボタンに適用した CSS クラス名と一致する文字列を受け付けます。
    • <valueToBePassedToTheActionHandler> は、アクション ハンドラーに渡す値です。

      JavaScript の場合:

      items: [{
      
         name: "appendSignature",
            type: "button",
         handler: appendSignature,
         scope: this,
         props: {
             isImage: {
                 value: false,
                 action: '_isSelectedAction'
             },
             imageButtonTooltip: {
                 value: "Insert signature",
                 action: '_tooltipAction'
             },
             imageButtonIcon: {
                 value: "ui-icon-contact",
                 action: '_buttonIconAction'
             }
         }
      }]
      
  6. ボタン クリック ハンドラーを定義

    ボタンのクリック ハンドラーを定義します。この機能は、定義済みの文字列をエディターのコンテンツに追加します。

    JavaScript の場合:

     <script type="text/javascript">
         function appendSignature(ui) {
             var currentContent = $("#htmlEditor").igHtmlEditor("getContent", "html");
             var signature = "Jon Doe<br/>Acme Corp<br/>555-1111";
             $("#htmlEditor").igHtmlEditor("setContent", currentContent + signature, "html");
         }
     </script>
    

関連コンテンツ

トピック

このトピックの追加情報については、以下のトピックも合わせてご参照ください。

サンプル

このトピックについては、以下のサンプルも参照してください。

  • カスタム ツールバーおよびボタン: このサンプルでは、HtmlEditor コントロールを電子メール クライアントとして実装します。署名をメッセージに追加するカスタム ツールバーがあります。

オンラインで表示: GitHub