web-dev-qa-db-ja.com

Summernoteで画像のアップロードを無効にする

Summernoteで画像のアップロードを完全に無効にする方法はありますが、画像のURL入力は保持しますか?私が見つけた最も近いものはdisableDragAndDrop: trueオプション、ただしこれは画像ポップアップからアップロードボタンを削除しません

19
Jonan

おそらく、目的を達成するためのより良い方法があります...しかし、頭に浮かぶ非常に簡単な解決策は、これをスタイルシートに追加するだけです:

.note-group-select-from-files {
  display: none;
}

画像のURL入力だけを残すように完全に機能し、誰かが要素を検査して、アップロード要素が表示なしでまだ存在することを発見しない限り、目的を達成します。

enter image description here


編集:Summernoteのソースコードを見てみたところ、上記のソリューションは実際には良い方法だと思われます。現在、ファイルアップロードボタンのみを無効にするAPIはありません。もちろん、img url入力をそのままにして無効にします。もちろん、いつでも追加してプルリクエストを開くことができます。

https://github.com/summernote/summernote/blob/4b1bf144862a88899a464ddfab6bc0593a061fbc/src/js/bs3/module/ImageDialog.js#L24

  var body = '<div class="form-group note-group-select-from-files">' +
               '<label>' + lang.image.selectFromFiles + '</label>' +
               '<input class="note-image-input form-control" type="file" name="files" accept="image/*" multiple="multiple" />' +
               imageLimitation +
             '</div>' +
             '<div class="form-group" style="overflow:auto;">' +
               '<label>' + lang.image.url + '</label>' +
               '<input class="note-image-url form-control col-md-12" type="text" />' +
             '</div>';
44
wesww

ツールバーを上書きし、そこで独自のボタンセットを定義できます。サンプルコードスニペットを次に示します。

$("#summernote").summernote({
        height: 300,
        toolbar: [
            [ 'style', [ 'style' ] ],
            [ 'font', [ 'bold', 'italic', 'underline', 'strikethrough', 'superscript', 'subscript', 'clear'] ],
            [ 'fontname', [ 'fontname' ] ],
            [ 'fontsize', [ 'fontsize' ] ],
            [ 'color', [ 'color' ] ],
            [ 'para', [ 'ol', 'ul', 'paragraph', 'height' ] ],
            [ 'table', [ 'table' ] ],
            [ 'insert', [ 'link'] ],
            [ 'view', [ 'undo', 'redo', 'fullscreen', 'codeview', 'help' ] ]
        ]
    });

このコードは、ビデオおよび画像の挿入オプションなしで、他のすべてのオプションを使用できるツールバーを生成します。詳細なAPIドキュメントを確認できます here

8
Aqib Ashef

Summernote.jsでこのコードを見つける

tplDialog = function (lang, options) {
      var tplImageDialog = function () {
        return '<div class="note-image-dialog modal" aria-hidden="false">' +
                 '<div class="modal-dialog">' +
                   '<div class="modal-content">' +
                     '<div class="modal-header">' +
                       '<button type="button" class="close" aria-hidden="true" tabindex="-1">&times;</button>' +
                       '<h4>' + lang.image.insert + '</h4>' +
                     '</div>' +
                     '<div class="modal-body">' +
                       '<div class="row-fluid">' +
                         '<h5>' + lang.image.selectFromFiles + '</h5>' +
                         '<input class="note-image-input" type="file" name="files" accept="image/*" />' +
                         '<h5>' + lang.image.url + '</h5>' +
                         '<input class="note-image-url form-control span12" type="text" />' +
                       '</div>' +
                     '</div>' +
                     '<div class="modal-footer">' +
                       '<button href="#" class="btn btn-primary note-image-btn disabled" disabled="disabled">' + lang.image.insert + '</button>' +
                     '</div>' +
                   '</div>' +
                 '</div>' +
               '</div>';
      };

このコードを削除してください:

'<h5>' + lang.image.selectFromFiles + '</h5>' +
'<input class="note-image-input" type="file" name="files" accept="image/*" />' +

これで、ファイルアップロード入力がモーダルダイアログから削除されます。

2
Sulung Nugroho

Jqueryを使用これは私のために働いた

 $('div.note-group-select-from-files').remove();

または(dwildaが示唆するように)削除を試みる前に要素が存在することを確認したい場合:

var imageUploadDiv = $('div.note-group-select-from-files');
if (imageUploadDiv.length) {
  imageUploadDiv.remove();
}
1
4Jean

Summernote.jsでこのコードを削除して見つけたコードを少し読んだ後、そのアップロード機能が削除されます

上記の回答のいずれかが機能しないため、ファイルからこのフォームを削除するだけです

'<div class="form-group note-form-group note-group-select-from-files">' +
               '<label class="note-form-label">' + lang.image.selectFromFiles + '</label>' +
               '<input class="note-image-input form-control note-form-control note-input" '+
               ' type="file" name="files" accept="image/*" multiple="multiple" />' +
               imageLimitation +
             '</div>' +
0
Dhruv Saxena