diff --git a/addons/web_editor/static/src/js/wysiwyg/widgets/link.js b/addons/web_editor/static/src/js/wysiwyg/widgets/link.js index b9e00d5f544..3ee8ffab55f 100644 --- a/addons/web_editor/static/src/js/wysiwyg/widgets/link.js +++ b/addons/web_editor/static/src/js/wysiwyg/widgets/link.js @@ -59,6 +59,7 @@ const Link = Widget.extend({ range.selectNodeContents(link); this.data.range = range; this.$link = $(link); + this.linkEl = link; } else { const selection = editable && editable.ownerDocument.getSelection(); this.data.range = selection && selection.rangeCount && selection.getRangeAt(0); @@ -66,6 +67,7 @@ const Link = Widget.extend({ if (this.data.range) { this.$link = this.$link || $(OdooEditorLib.getInSelection(this.editable.ownerDocument, 'a')); + this.linkEl = this.$link[0]; this.data.iniClassName = this.$link.attr('class') || ''; this.colorCombinationClass = false; let $node = this.$link; @@ -88,6 +90,10 @@ const Link = Widget.extend({ this.data.content = this.data.content ? this.data.content.replace(/[ \t\r\n]+/g, ' ') : ''; } + if (this.linkEl) { + this.data.isNewWindow = this.data.isNewWindow || this.linkEl.target === '_blank'; + } + const allBtnClassSuffixes = /(^|\s+)btn(-[a-z0-9_-]*)?/gi; const allBtnShapes = /\s*(rounded-circle|flat)\s*/gi; this.data.className = this.data.iniClassName diff --git a/addons/web_editor/static/src/xml/wysiwyg.xml b/addons/web_editor/static/src/xml/wysiwyg.xml index beadeffd48a..e63120f427d 100644 --- a/addons/web_editor/static/src/xml/wysiwyg.xml +++ b/addons/web_editor/static/src/xml/wysiwyg.xml @@ -641,7 +641,7 @@ - + ⌙ Open in new window