あいうえお

キャンセルの流れを確認

    
      <script type="text/javascript">
        // ------------------------------------------------------------
        // テキストエリア
        // ------------------------------------------------------------
        // エレメントを作成する
        var element = document.createElement("textarea");
        // BODY のノードリストに登録する
        document.body.appendChild(element);
        // スタイルを設定
        element.style.cssText = "width:400px; height:300px;";
        // イベントリスナーに対応している
        if(element.addEventListener){
            // カスタムイベントのリッスンを開始する
            element.addEventListener("myTextAreaChanging",function (e){
                console.log("リスナーが受け取ったデータ:" + e.detail.text);
                // キャンセルに対応しているか
                if(e.cancelable){
                    // デフォルトの動作をキャンセル
                    e.preventDefault();
                }
            });
        }
        // ------------------------------------------------------------
        // 変更の直前通知を目的としたカスタムイベント
        // ------------------------------------------------------------
        // マウスイベントオブジェクトを作成
        var custom_event = document.createEvent("CustomEvent");
        // マウスイベントオブジェクトを初期化
        custom_event.initCustomEvent("myTextAreaChanging",false,true,{text:"表示テスト"});
        // ------------------------------------------------------------
        // テキストエリアの EventTarget から送出
        // ------------------------------------------------------------
        var result = element.dispatchEvent(custom_event);
        if(result){
            element.value = custom_event.detail.text;
        }else{
            console.log("リスナーがキャンセルした:" + custom_event.defaultPrevented);
        } 
      </script>