summaryrefslogtreecommitdiff
path: root/assets/js/settings.js
diff options
context:
space:
mode:
authorEltrac <hi@guhub.cn>2025-09-10 16:48:59 +0800
committerEltrac <hi@guhub.cn>2025-09-10 16:48:59 +0800
commit8b7d26dfd1fc10e3143ff0d3fa969ed41f21e710 (patch)
tree55c3db871329053489b93acea2d329ce8bd427be /assets/js/settings.js
parent31c6eda88b7793e0ede5ba1ded54b4e5b0ee06ec (diff)
feat: add checkbox options
- visitor can now disable umami tracking - visitor can now hide Batrick Former-commit-id: c092fca1f824e18586309376478e3ad95fcab3a2
Diffstat (limited to 'assets/js/settings.js')
-rw-r--r--assets/js/settings.js43
1 files changed, 42 insertions, 1 deletions
diff --git a/assets/js/settings.js b/assets/js/settings.js
index 08e7a1de..5a90c2de 100644
--- a/assets/js/settings.js
+++ b/assets/js/settings.js
@@ -58,7 +58,48 @@
}
initTextAlterButtons()
- //...
+ // initialize checkbox options
+ function initCheckboxes() {
+ const checkboxes = document.querySelectorAll('#checkbox-options input[type="checkbox"]');
+ const checkboxOptions = [
+ {
+ id: 'dontAllowTracking',
+ label: '禁止网站使用 Web 分析工具跟踪用户行为',
+ storage: 'umami.disabled',
+ default: 'false'
+ },
+ {
+ id: 'hideBatrick',
+ label: '隐藏 Batrick(返回顶部按钮)',
+ storage: 'geedeapro.ui.hideBatrick',
+ default: 'false'
+ }
+ ]
+
+ checkboxOptions.forEach(checkboxOption => {
+ // create checkbox
+ const element = document.createElement('input');
+ element.type = 'checkbox';
+ element.id = checkboxOption.id;
+ element.checked = checkboxOption.default;
+
+ // create label
+ const label = document.createElement('label');
+ label.htmlFor = element.id;
+ label.textContent = checkboxOption.label;
+
+ // add event listener to checkbox
+ element.addEventListener('change', () => {
+ localStorage.setItem(checkboxOption.storage, element.checked);
+ });
+
+ // append checkbox and label to container
+ const container = document.getElementById('checkbox-options');
+ container.appendChild(element);
+ container.appendChild(label);
+ });
+ }
+ initCheckboxes();
};
initializeSettingsPage();