勉強したことのメモ.

Webエンジニア / プログラマが勉強したことのメモ。

summernoteのデフォルトの画像挿入時にCSSや任意の属性を指定する方法

summernoteのデフォルトの画像挿入時はBase64形式にエンコードされ、imgタグとしてエディタ内に追記される。その際、imgタグに対してCSSであったりLightbox3用の属性(data-caption="xxxx")を指定の上、追記したい。以下に対応方法をメモ。

 

summernoteについて

summernote自体の使用方法については過去記事参照。

 

対応方法

ソースコード

const summernote_option = {
    lang: 'ja-JP',
    height: 300,
    focus: true,
    toolbar: [
        ['view', ['undo', 'redo']],
        ['style', ['style']],
        ['font', ['bold', 'underline', 'clear']],
        ['color', ['color']],
        ['para', ['ul', 'ol', 'paragraph']],
        ['table', ['table']],
        ['insert', ['link', 'picture', 'video']],
        ['view', ['fullscreen', 'codeview', 'help']],
    ],
    callbacks: {
        onImageUpload: function( files ){

            //画像存在チェック
            if( !files || files.length === 0 ){
                return false;
            }

            //FileReaderオブジェクトのインスタンス化
            const reader = new FileReader();

            //読み込み失敗時
            reader.onerror = function(){
                return false;
            }

            //画像読み込み成功時のイベントを登録
            reader.onload = function(){
                const base64_data = reader.result; 
                $(selector).summernote('pasteHTML', `<img src="${base64_data}" style="max-width: 100%;" data-caption="lightbox3用のテキスト">`);
            }

            //画像の読み込み(読み込みが完了すればonloadが実行される)
            reader.readAsDataURL(files[0]);
        }
    }
}

$(selector).summernote(summernote_option)

 

リファレンス

onImageUpload

https://summernote.org/deep-dive/#onimageupload

 - jQuery JavaScript

  関連記事

summernoteにクリップボードにコピー機能を追加する方法
summernoteにクリップボードにコピー機能を追加する方法

summernoteのツールバーに新たにボタンを設置し、そのボタンをクリックする ...

「emoji-mart」プラグインを利用してsummernoteに絵文字機能を追加する方法
「emoji-mart」プラグインを利用してsummernoteに絵文字機能を追加する方法

summernoteに絵文字機能を追加したい。具体的にはツールバーに新たにボタン ...

summernoteにギャラリーから画像を挿入する機能を追加する方法
summernoteにギャラリーから画像を挿入する機能を追加する方法

summernoteの画像機能はデフォルトだと「画像ファイルを選ぶ」「URLから ...

summernoteで画像選択時にサーバにファイルをアップロードする方法
summernoteで画像選択時にサーバにファイルをアップロードする方法

summernoteで画像を選択した際、ファイルはアップロードされずBase64 ...

summernote(WYSIWYGエディタ)の設置方法と日本語化対応
summernote(WYSIWYGエディタ)の設置方法と日本語化対応

あるシステムにWYSIWYGエディタを実装したかった。以前にメモしたCKEdit ...