无法到达对象-“ TypeError:$(...)。summernote不是函数”

时间:2019-12-27 13:16:57

标签: javascript c# asp.net summernote

我正试图让Summernote编辑器插入图像,但它无法正常工作。我看到许多其他人都在为同一问题而苦苦挣扎,但是我发现的所有解决方案都行不通。问题是我无法在sendFile()函数内使用相同的Summernote对象插入图像,但是如果我将“ insertImage”移出函数,则效果很好。

我猜测Summernote对象有问题。我尝试使用“ $ this,$ that,编辑器,welEditable”和某些人建议的其他参数,但是它不起作用。我认为它不起作用,因为我使用的是Summernote的较新版本,并且它们可能已经更改了Summernote对象的操作方式。

这是我现在的代码:

<script>
    $('#summernote').summernote({
        tabsize: 2,
        height: 500,
        styleTags: ['p', 'h2', 'h3'],
        callbacks: {
            onImageUpload: function (files) {
                for (var i = files.length - 1; i >= 0; i--) {
                    sendFile(files[i]);
                }
            }
        }
    });

    function sendFile(file) {
        console.log(file);

        var form_data = new FormData();
        form_data.append('file', file);
        $.ajax({
            url: "@Url.Action("UploadImage","Admin")",
            data: form_data,
            type: "POST",
            cache: false,
            contentType: false,
            processData: false,
            success: function (url) {
                $('#summernote').summernote('insertImage', url);
            }
        });
    }

    $('.note-toolbar .note-fontname').remove();
</script>

例如,如果我这样做:

<script>
    $('#summernote').summernote('insertImage', "https://google.com/image.png");
</script>

然后正常工作。但是否则我会收到错误: TypeError:$(...)。summernote不是函数

我正在使用Summernote 0.8.12(精简版)。有人能看到我在做什么吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

这可能是由于JavaScript包含顺序引起的。确保对summersum.js的引用在jquery和bootstrap引用之后。