Javascript Summernote始终在新选项卡中打开链接

Javascript Summernote始终在新选项卡中打开链接,javascript,html,css,summernote,Javascript,Html,Css,Summernote,当用户插入带有Summernote的链接时,用户可以选择是否在新选项卡中打开该链接。如何强制用户始终选择在新选项卡中打开链接?即使只是能够隐藏该选项也很有用,因为我可以在服务器端添加target=“\u blank”。不管怎样,我已经尝试了很多事情,但我还没有找到答案 谢谢我不熟悉Summernote,API中应该有一个选项来禁用它,但是如果您正在寻找快速解决方案,可以通过CSS将该选项锁定并隐藏 CSS隐藏: .note-editor .link-dialog .checkbox { dis

当用户插入带有Summernote的链接时,用户可以选择是否在新选项卡中打开该链接。如何强制用户始终选择在新选项卡中打开链接?即使只是能够隐藏该选项也很有用,因为我可以在服务器端添加
target=“\u blank”
。不管怎样,我已经尝试了很多事情,但我还没有找到答案


谢谢

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

CSS隐藏:

.note-editor .link-dialog .checkbox { display: none; }
document.querySelector('.note-editor .link-dialog .checkbox input').checked = true;
然而,我认为它将保持默认状态(未选中),要强制检查它,您需要JavaScript

使用JavaScript强制检查:

.note-editor .link-dialog .checkbox { display: none; }
document.querySelector('.note-editor .link-dialog .checkbox input').checked = true;

转到summernote.js文件并查找

$openInNewWindow.prop('checked', linkInfo.isNewWindow);
通过替换linkInfo.isNewWindow强制将此设置为true

$openInNewWindow.prop('checked', true);

希望它能解决您的问题。

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

像这样:

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

查看github上的pull请求:

当您使用Summernotev0.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);
});

@ZachPanzarino您可以创建一个JSFIDLE或共享一个用于调试的实时演示吗?我一直在使用summernote的自定义配置,因此类是不同的。我已经弄明白了。这是唯一的办法吗?或者是有一个配置设置吗?我必须在行的上方添加“/@ts ignore”…summernote({…)以使typescript的类型检查愉快。