From 5694b726f8ba0eb7ad65abed431e1fc274bbf6ac Mon Sep 17 00:00:00 2001 From: Lars Gebhardt-Kusche Date: Thu, 29 Jan 2026 23:49:03 +0100 Subject: [PATCH] sdasd --- config/current.ver | 2 +- public/assets/js/bridge/rte-editor.js | 35 ++++++++++++++++++--------- 2 files changed, 24 insertions(+), 13 deletions(-) diff --git a/config/current.ver b/config/current.ver index a8c3a67..8c1a6bb 100644 --- a/config/current.ver +++ b/config/current.ver @@ -1 +1 @@ -1.1.57 \ No newline at end of file +1.1.58 \ 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 746379b..f6d0150 100644 --- a/public/assets/js/bridge/rte-editor.js +++ b/public/assets/js/bridge/rte-editor.js @@ -918,28 +918,39 @@ linkApply.addEventListener('click', () => { const url = String(linkInput.value || '').trim(); if (!url) { - exec('unlink'); - hideLinkPanel(); + linkRemove.click(); return; } try { const linkEl = findLinkAtSelection(); - if (linkEl) { - const docRef = content.ownerDocument || document; - const sel = docRef.getSelection(); - if (sel && docRef.createRange) { - const range = docRef.createRange(); - range.selectNodeContents(linkEl); - sel.removeAllRanges(); - sel.addRange(range); - saveSelection(); - } + if (linkEl && linkEl.setAttribute) { + linkEl.setAttribute('href', url); + hideLinkPanel(); + return; } } catch {} + const range = getSelectionRange(); + if (!range || range.collapsed) { + hideLinkPanel(); + return; + } + restoreSelection(); exec('createLink', url); hideLinkPanel(); }); linkRemove.addEventListener('click', () => { + try { + const linkEl = findLinkAtSelection(); + if (linkEl && linkEl.parentNode) { + while (linkEl.firstChild) { + linkEl.parentNode.insertBefore(linkEl.firstChild, linkEl); + } + linkEl.parentNode.removeChild(linkEl); + hideLinkPanel(); + return; + } + } catch {} + restoreSelection(); exec('unlink'); hideLinkPanel(); });