From 721ca7282a54f05922c993a4d34afa7d73f0638d Mon Sep 17 00:00:00 2001 From: Lars Gebhardt-Kusche Date: Fri, 30 Jan 2026 23:32:07 +0100 Subject: [PATCH] asdasd --- config/current.ver | 2 +- public/assets/js/bridge/rte-editor.js | 41 ++++++++++++++------------- 2 files changed, 23 insertions(+), 20 deletions(-) diff --git a/config/current.ver b/config/current.ver index a9d5327..c8e347b 100644 --- a/config/current.ver +++ b/config/current.ver @@ -1 +1 @@ -1.1.63 \ No newline at end of file +1.1.64 \ No newline at end of file diff --git a/public/assets/js/bridge/rte-editor.js b/public/assets/js/bridge/rte-editor.js index 33d4546..a0990a6 100644 --- a/public/assets/js/bridge/rte-editor.js +++ b/public/assets/js/bridge/rte-editor.js @@ -114,10 +114,15 @@ Array.from(wrapper.querySelectorAll('*')).forEach((el) => { const tag = el.tagName; + const tagLower = tag.toLowerCase(); if (inlineTags.has(tag)) { + if (tagLower === 'a' && !el.getAttribute('href')) { + unwrap(el, false); + return; + } Array.from(el.attributes).forEach((attr) => { const name = attr.name.toLowerCase(); - if (tag === 'a') { + if (tagLower === 'a') { if (!['href', 'target', 'rel', 'style', 'class'].includes(name)) { el.removeAttribute(attr.name); } @@ -945,11 +950,6 @@ return; } restoreSelection(); - const range = savedRange ? savedRange.cloneRange() : getSelectionRange(); - if (!range || range.collapsed) { - hideLinkPanel(); - return; - } try { const linkEl = findLinkAtSelection(); if (linkEl && linkEl.setAttribute) { @@ -958,19 +958,22 @@ return; } } catch {} - exec('createLink', url); - const linkAfter = findLinkAtSelection(); - if (!linkAfter) { - try { - const docRef = content.ownerDocument || document; - const anchor = docRef.createElement('a'); - anchor.setAttribute('href', url); - anchor.setAttribute('target', '_blank'); - anchor.setAttribute('rel', 'noopener'); - const fragment = range.extractContents(); - anchor.appendChild(fragment); - range.insertNode(anchor); - } catch {} + const range = savedRange ? savedRange.cloneRange() : getSelectionRange(); + if (!range || range.collapsed) { + hideLinkPanel(); + return; + } + try { + const docRef = content.ownerDocument || document; + const anchor = docRef.createElement('a'); + anchor.setAttribute('href', url); + anchor.setAttribute('target', '_blank'); + anchor.setAttribute('rel', 'noopener'); + const fragment = range.extractContents(); + anchor.appendChild(fragment); + range.insertNode(anchor); + } catch { + exec('createLink', url); } hideLinkPanel(); });