diff --git a/app/renderer/js/main.ts b/app/renderer/js/main.ts index a2642596..77ec5dbc 100644 --- a/app/renderer/js/main.ts +++ b/app/renderer/js/main.ts @@ -461,7 +461,7 @@ class ServerManagerView { const $parent = $img.parentElement; const $container = $parent.parentElement; const webviewId = $container.dataset.tabId; - const $webview = document.querySelector(`webview[data-tab-id="${webviewId}"]`); + const $webview = document.querySelector(`webview[data-tab-id="${CSS.escape(webviewId)}"]`); const realmName = $webview.getAttribute('name'); if (realmName === null) { @@ -972,7 +972,7 @@ class ServerManagerView { webviews.forEach(webview => { const currentId = webview.getWebContentsId(); const tabId = webview.getAttribute('data-tab-id'); - const concurrentTab: HTMLButtonElement = document.querySelector(`div[data-tab-id="${tabId}"]`); + const concurrentTab: HTMLButtonElement = document.querySelector(`div[data-tab-id="${CSS.escape(tabId)}"]`); if (currentId === webviewId) { concurrentTab.click(); } diff --git a/app/renderer/js/pages/preference/nav.ts b/app/renderer/js/pages/preference/nav.ts index 57d79c2b..caf5f6dc 100644 --- a/app/renderer/js/pages/preference/nav.ts +++ b/app/renderer/js/pages/preference/nav.ts @@ -41,7 +41,7 @@ export default class PreferenceNav extends BaseComponent { registerListeners(): void { for (const navItem of this.navItems) { - const $item = document.querySelector(`#nav-${navItem}`); + const $item = document.querySelector(`#nav-${CSS.escape(navItem)}`); $item.addEventListener('click', () => { this.props.onItemSelected(navItem); }); @@ -59,12 +59,12 @@ export default class PreferenceNav extends BaseComponent { } activate(navItem: string): void { - const $item = document.querySelector(`#nav-${navItem}`); + const $item = document.querySelector(`#nav-${CSS.escape(navItem)}`); $item.classList.add('active'); } deactivate(navItem: string): void { - const $item = document.querySelector(`#nav-${navItem}`); + const $item = document.querySelector(`#nav-${CSS.escape(navItem)}`); $item.classList.remove('active'); } }