Summernote 始终在新标签页中打开 link

Summernote always open link in new tab

当用户在 Summernote 中插入 link 时,它会让他们选择 link 是否应该在新标签页中打开。如何强制用户始终选择在新选项卡中打开 link?即使只是能够隐藏该选项也会很有用,因为我可以在服务器端添加 target="_blank"。无论哪种方式,我一直在尝试很多事情,但我一直无法找到答案。

http://summernote.org/

谢谢

我不熟悉 Summernote,API 中应该有一个选项可以禁用它,但如果您正在寻找快速解决方案,可以通过 CSS 定位该选项,然后隐藏它。

CSS 隐藏:

.note-editor .link-dialog .checkbox { display: none; }

不过我认为它将保持默认状态(未选中),要强制选中它,您需要 JavaScript。

强制检查 JavaScript:

document.querySelector('.note-editor .link-dialog .checkbox input').checked = true;

转到 summernote.js 文件并找到

$openInNewWindow.prop('checked', linkInfo.isNewWindow);

通过替换 linkInfo.isNewWindow.

将其强制设置为真
$openInNewWindow.prop('checked', true);

希望它能解决您的问题。

您可以使用 linkTargetBlank: false 选项来禁用复选框上的默认选中。

像这样:

$('.wysiwyg').summernote({
    linkTargetBlank: false
});

查看 github 上的拉取请求:https://github.com/summernote/summernote/pull/2195

当您使用 Summernote v0.8.11 时,只需转到 summernote.js 文件并将 isNewWindow: true 设置为 true 而不是 $openInNewWindow.is(':checked') .在第 6219 行附近。

$openInNewWindow.prop('checked', isNewWindowChecked);
$linkBtn.one('click', function (event) {
  event.preventDefault();
  deferred.resolve({
      range: linkInfo.range,
      url: $linkUrl.val(),
      text: $linkText.val(),
      isNewWindow: $openInNewWindow.is(':checked') // change this
  });
  _this.ui.hideDialog(_this.$dialog);
});