diff --git a/popup/popup.js b/popup/popup.js index 0ab1ccf1..bea9498d 100644 --- a/popup/popup.js +++ b/popup/popup.js @@ -304,7 +304,14 @@ function createStyleElement({ if (check) detectSloppyRegexps([style]); const oldElement = $(ENTRY_ID_PREFIX + style.id); - if (oldElement) { + if (oldElement && oldElement.contains(document.activeElement)) { + // preserve the focused element inside + const {className} = document.activeElement; + oldElement.parentNode.replaceChild(entry, oldElement); + // we're not using $() since className may contain multiple tokens + const el = entry.getElementsByClassName(className)[0]; + if (el) el.focus(); + } else if (oldElement) { oldElement.parentNode.replaceChild(entry, oldElement); } else { container.appendChild(entry);