【发布时间】:2016-11-19 17:34:59
【问题描述】:
当用户使用 Summernote 插入链接时,它会为他们提供是否应在新选项卡中打开链接的选项。如何强制用户始终选择在新选项卡中打开链接?即使只是能够隐藏该选项也会很有用,因为我可以在服务器端添加target="_blank"。无论哪种方式,我一直在尝试很多事情,但我一直无法找到答案。
谢谢
【问题讨论】:
标签: javascript html css summernote
当用户使用 Summernote 插入链接时,它会为他们提供是否应在新选项卡中打开链接的选项。如何强制用户始终选择在新选项卡中打开链接?即使只是能够隐藏该选项也会很有用,因为我可以在服务器端添加target="_blank"。无论哪种方式,我一直在尝试很多事情,但我一直无法找到答案。
谢谢
【问题讨论】:
标签: javascript html css summernote
我不熟悉 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);
});
【讨论】: