Summernote:手动打开链接对话框

时间:2019-04-09 13:35:26

标签: javascript jquery summernote

我试图编写一个脚本,当我单击一个按钮时,该脚本会自动显示summernote链接对话框。

例如,我有以下按钮:

<button class="btn btn-sm btn-info use_hyperlink" data-href="//files.examples.org.uk/song.mp3" type="button">Copy</button>

所以在我的js中,我有:

$("#linklist").on("click", "button.use_hyperlink", function () {
    var href = $(this).data("href")
    modal = $("div.note-editor.note-frame.panel.panel-default div.modal.link-dialog")
    modal.addClass("in").modal("show")
    modal.find("input.note-link-url.form-control.note-form-control.note-input").val(href)
    modal.find("button.note-btn.note-btn-primary.note-link-btn").prop("disabled", false).removeClass("disabled").attr("type","button")
})  

这将打开对话框,成功粘贴href,但是单击Insert Link按钮将提交Summernote所在的表单。

6765行中的summernote code,有一个叫做showLinkDialog的函数,我想这是我想要的函数。但是,当我尝试:

$(document).ready(function () {
    $("textarea#summernote").summernote({height: 500});
    $("#linklist").on("click", "button.use_hyperlink", function () {
        var href = $(this).data("href")
        $("textarea#summernote").showLinkDialog({
            url: href
        });
    })  
})

我得到一个Uncaught TypeError: $(...).showLinkDialog is not a function

1 个答案:

答案 0 :(得分:1)

尝试点击按钮触发

$('.note-insert [aria-label^="Link"').trigger('click')